Назад | Перейти на главную страницу

Как вы сохраняете локальную копию почты при пересылке почты с Postfix?

На этот вопрос есть связанный ответ здесь: Как я могу переслать почту, сохранив копию с помощью postfix и mysql? Но с этим есть две проблемы:

  1. установка OP использует MySQL, и все ответы ориентированы на это, и
  2. ответ, который кажется мне тем, который я хочу, тот, который использует main.cf и хеш-таблицы, относится к 2009 году (и тогда не получил внимания). Поэтому я хотел бы спросить об этом еще раз, для настройки файла конфигурации вместо настройки MySQL.

Я успешно пересылаю почту на свой адрес Gmail со следующими строками в /etc/postfix/main.cf:

virtual_alias_domains = example.com, example.net
virtual_alias_maps = hash:/etc/postfix/virtual

и в / etc / postfix / virtual:

@example.com myusername
@example.net myusername
myusername me@gmail.com

Это отлично работает и пересылает всю почту на me@gmail.com, но я бы хотел сохранить копию на сервере. В идеале они должны пойти во входящие сообщения myusername. Как правильно это сделать?


Мой журнал /var/log/mail.log после отправки тестового письма:

Oct  8 09:16:26 myservername postfix/qmgr[1494]: 89736105BA7: from=<sending_address@gmail.com>, size=1676, nrcpt=2 (queue active)
Oct  8 09:16:26 myservername postfix/trivial-rewrite[7338]: warning: do not list domain mydomain.com in BOTH mydestination and virtual_alias_domains
Oct  8 09:16:26 myservername postfix/cleanup[7339]: B7888105BB0: message-id=<CAGS0grDYkvWj_wxpGKW1h7XJZ5YEky3DwPBnB4XdvE3TU-W7jg@mail.gmail.com>
Oct  8 09:16:26 myservername postfix/local[7340]: 89736105BA7: to=<myusername@mydomain.com>, relay=local, delay=0.21, delays=0.19/0.01/0/0.01, dsn=2.0.0, status=sent (forwarded as B7888105BB0)
Oct  8 09:16:26 myservername postfix/qmgr[1494]: B7888105BB0: from=<sending_address@gmail.com>, size=1802, nrcpt=1 (queue active)
Oct  8 09:16:26 myservername postfix/smtpd[7335]: disconnect from mail-io0-f171.google.com[209.85.223.171]
Oct  8 09:16:27 myservername postfix/smtp[7341]: connect to gmail-smtp-in.l.google.com[2607:f8b0:400e:c04::1a]:25: Network is unreachable
Oct  8 09:16:27 myservername postfix/smtp[7342]: connect to gmail-smtp-in.l.google.com[2607:f8b0:400e:c04::1a]:25: Network is unreachable
Oct  8 09:16:27 myservername postfix/smtp[7342]: B7888105BB0: to=<mygmailaddr@gmail.com>, orig_to=<myusername@mydomain.com>, relay=gmail-smtp-in.l.google.com[74.125.28.26]:25, delay=0.89, delays=0/0.01/0.6/0.27, dsn=2.0.0, status=sent (250 2.0.0 OK 1444310187 n40si31732683ioi.161 - gsmtp)
Oct  8 09:16:27 myservername postfix/qmgr[1494]: B7888105BB0: removed

Просто измените последнюю строку

myusername me@gmail.com

так становится

myusername myusername me@gmail.com

Объяснение

Когда postfix обнаружит, что адрес был привязан к самому себе, затем вместо этого почта будет доставлена ​​соответствующему пользователю

Вы также можете создать файл .forward в домашнем каталоге пользователя с содержимым:

\myusername, me@gmail.com

Более подробную информацию можно найти здесь: https://www.ccsf.edu/Pub/UNIXhelp/mail/file_forward.html и http://www.postfix.org/local.8.html

Системный администратор может настроить одну или несколько общесистемных баз данных псевдонимов в стиле рассылки. Пользователи могут иметь файлы ~ / .forward в стиле sendmail. Почта для имени доставляется на имя псевдонима, адресатам в ~ name / .forward, в почтовый ящик, принадлежащий имени пользователя, или отправляется обратно как недоставленная.

   The system administrator can specify a comma/space  separated  list  of
   ~/.forward like files through the forward_path configuration parameter.
   Upon delivery, the local delivery agent tries each pathname in the list
   until a file is found.

   Delivery via ~/.forward files is done with the privileges of the recip-
   ient.  Thus, ~/.forward like files must be readable by  the  recipient,
   and  their  parent directory needs to have "execute" permission for the
   recipient.

   The forward_path parameter is subject to interpolation of $user (recip-
   ient  username),  $home  (recipient  home directory), $shell (recipient
   shell), $recipient (complete recipient address), $extension  (recipient
   address  extension), $domain (recipient domain), $local (entire recipi-
   ent   address   localpart)   and   $recipient_delimiter.   The    forms
   ${name?value}  and  ${name:value}  expand  conditionally  to value when
   $name is (is not) defined.  Characters that may have special meaning to
   the  shell  or  file  system  are replaced by underscores.  The list of
   acceptable characters is specified  with  the  forward_expansion_filter
   configuration parameter.

   An  alias  or ~/.forward file may list any combination of external com-
   mands, destination file names, :include: directives, or mail addresses.
   See  aliases(5)  for a precise description. Each line in a user's .for-
   ward file has the same syntax as the right-hand part of an alias.

   When an address is found in its own alias expansion, delivery  is  made
   to the user instead. When a user is listed in the user's own ~/.forward
   file, delivery is made to the user's mailbox instead.  An empty ~/.for-
   ward file means do not forward mail.

   In  order to prevent the mail system from using up unreasonable amounts
   of memory, input records read from :include: or from  ~/.forward  files
   are broken up into chunks of length line_length_limit.

   While  expanding  aliases,  ~/.forward  files,  and  so on, the program
   attempts to avoid duplicate deliveries. The duplicate_filter_limit con-
   figuration parameter limits the number of remembered recipients.