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

SRS / Sender Rewriting при пересылке почты через postfix

Есть ли способ выполнить SRS или что-то подобное с помощью Postfix?

Когда я получаю письмо от user@example.org, я пересылаю его (через общий список) на something@gmail.com, но GMail проверяет SPF и видит, что мой сервер не авторизован для отправки почты от имени example.org. . Я хотел бы переписать отправителя на что-то @ myserver, оставив from как user@example.org.

Вот шаги для установки postsrsd от Тимо Рёлинга. Эти инструкции, похоже, работают для многих разновидностей Unix, включая Ubuntu 14.04.

# Debian/Ubuntu preparations:
sudo apt-get install cmake sysv-rc-conf

# download and compile the software:
cd ~
wget https://github.com/roehling/postsrsd/archive/master.zip
unzip master
cd postsrsd-master/
make
sudo make install

# or alternatively install binary from later Ubuntu repositories
sudo apt-get install postsrsd

# Add postfix configuration parameters for postsrsd:
sudo postconf -e "sender_canonical_maps = tcp:127.0.0.1:10001"
sudo postconf -e "sender_canonical_classes = envelope_sender"
sudo postconf -e "recipient_canonical_maps = tcp:127.0.0.1:10002"
sudo postconf -e "recipient_canonical_classes = envelope_recipient"

# Add SRS daemon to startup (Red Hat 6/CentOS):
sudo chkconfig postsrsd on
# Add SRS daemon to startup (Debian/Ubuntu):
sudo sysv-rc-conf postsrsd on
# Start SRS daemon:
sudo service postsrsd restart
#Reload postfix:
sudo service postfix reload

Здесь есть учебник 2012 года по настройке SRS с Postfix в Debian: http://blog.phusion.nl/2012/09/10/mail-in-2012-from-an-admins-perspective/

Вот учебник 2013 года для Ubuntu: http://www.ameir.net/blog/archives/71-installing-srs-extensions-on-postfix-ubuntudebian.html

Вот некоторые мысли, которые потребуют некоторой настройки для точного соответствия вашим потребностям. Первое, что я обнаружил, это то, что Postfix, похоже, не любит ничего делать с адресами, которые являются псевдонимами (т.е. virtual_alias_domain/virtual_alias_maps). Но это нормально, поскольку на самом деле не имеет значения, как называются эти адреса, если в конце концов все будет доставлено должным образом.

Итак, в Postfix main.cfдобавьте следующие строки:

virtual_mailbox_domains = example.org
# Feel free to give munger a better name, just update master.cf appropriately
virtual_transport = munger:

Затем вам нужно сообщить Postfix, что munger на самом деле значит. Добавьте следующее (см. труба (8) для дополнительных опций). Так что добавьте в master.cf:

munger    unix  -       n       n       -       -       pipe
  flags= user=nobody argv=/usr/bin/redirector

Согласно вышеизложенному, все, что предназначено для example.org будет отправлено в /usr/bin/redirector программа (или как вы ее называете). Для большинства обычных вещей вам понадобятся некоторые аргументы командной строки для информации об отправителе / ​​получателе (опять же, pipe(8) есть более подробная информация), но поскольку адреса отправителя и получателя фиксированы, больше ничего в командной строке не требуется.

Теперь вам просто нужно написать redirector программа. Это сработало для меня:

#!/bin/sh
/usr/sbin/sendmail -bm -f 'something@myserver' 'something@gmail.com'

Это обычный сценарий оболочки (или ваш язык по выбору), поэтому сделайте его настолько простым или сложным, насколько вам нравится.

Вам лучше забыть обо всем, что касается spf, и вместо этого использовать dkim.

Вот хорошая статья, описывающая проблемы SPF.