На этот вопрос есть связанный ответ здесь: Как я могу переслать почту, сохранив копию с помощью postfix и 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.