Настройка Catch-all адреса в Postfix

Автор: | 3 июня 2022

Зада­ча про­стая — полу­чать почту, кото­рая была отправ­ле­на на несу­ще­ству­ю­щие ящи­ки наше­го доме­на. Конеч­но будет и спам. И тут выбор каж­до­го — делать так или нет. Но порой обыч­ный чело­век может ско­пи­ро­вать адрес с ошиб­кой, набрать рука­ми с опе­чат­кой и т.д., и мож­но про­сто вер­нуть поль­зо­ва­те­лю пись­мо с ошиб­кой, что тако­го адре­са­та нет, а мож­но полу­чить все эти пись­ма на опре­де­лен­ный ящик, кото­рый про­ве­рять и раз­би­рать. Я рас­ска­жу как настро­ить такой ящик.

Ввод­ные дан­ные:

  • Ubuntu 20.04
  • Postfix 3.4.13
  • Один домен для почты
  • Поль­зо­ва­те­ли хра­нят­ся как систем­ные акка­ун­ты Linux

Итак, после­до­ва­тель­ность будет такая:

Во-пер­вых, созда­ем virtual alias для postfix:

nano /etc/postfix/virtual

В этом фай­ле нуж­но пере­чис­лить реаль­ные ящи­ки и к кому они долж­ны при­хо­дить, и затем ука­зать како­му поль­зо­ва­те­лю будет при­хо­дить catch-all адрес. Содер­жи­мое фай­ла будет при­мер­но таким:

petr@mydomain.ru petr #real mailbox
sale@mydomain.ru sale #real mailbox
saler@mydomain.ru sale #alias
@mydomain.ru support #catch-all to user support

Сохра­ня­ем, закры­ва­ем и созда­ем hash для postfix из это­го фай­ла

postmap /etc/postfix/virtual

Резуль­та­том это­го будет созда­ние фай­ла /etc/postfix/virtual.db . Идем даль­ше.

Во-вто­рых, нуж­но ука­зать postfix на полу­чен­ный файл. Откры­ва­ем кон­фиг main.cf и добав­ля­ем строч­ку:

nano /etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual

Сохра­ня­ем, закры­ва­ем и пере­чи­ты­ва­ем кон­фиг postfix

systemctl reload postfix

Теперь отправ­ля­ем два пись­ма, одно на адрес petr@mydomain.ru , вто­рое на адрес somebody@mydomain.ru . В логах долж­ны уви­деть при­мер­но сле­ду­ю­щее.

postfix/qmgr[118654]: ED68C2A114F: from=<megamail@gmail.com>, size=2853, nrcpt=1 (queue active)                                                                              
postfix/local[118701]: ED68C2A114F: to=<petr@mydomain.ru>, relay=local, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
postfix/qmgr[118654]: ED68C2A114F: removed
postfix/smtpd[118693]: disconnect from mail-ej1-f45.google.com[209.85.218.45] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7
postfix/smtpd[118693]: connect from mail-ej1-f53.google.com[209.85.218.53]
postfix/smtpd[118693]: C8AA92A114F: client=mail-ej1-f53.google.com[209.85.218.53]
postfix/cleanup[118700]: C8AA92A114F: message-id=<1391780861.20220603011324@gmail.com>
postfix/qmgr[118654]: C8AA92A114F: from=<megamail@gmail.com>, size=2879, nrcpt=1 (queue active)
postfix/local[118701]: C8AA92A114F: to=<support@mydomain.ru>, orig_to=<somebody@mydomain.ru>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
postfix/qmgr[118654]: C8AA92A114F: removed

Пётр полу­чил свое пись­мо напря­мую, а support полу­чил пись­мо через catch-all, в логе это отоб­ра­же­но в бло­ке orig_to=

Всё. Раду­ем­ся.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*