Я недавно установил домашний сервер. И поскольку мой интернет-провайдер довольно раздражающе блокирует исходящий порт 25, я не могу правильно настроить SMTP. Поэтому я настроил его на ретрансляцию через Gmail (я все равно не отправляю много писем с этого сервера, так что это не проблема).
Теперь у меня есть установка Magento с контактной формой, если я использую ее (которая использует SMTP localhost), в поле заголовка from можно указать правильное имя, а также правильный адрес электронной почты. (Примечание: это не из-за ответа -to поле заголовка, поле from действительно указывает правильный адрес)
Я также создал несколько учетных записей электронной почты, с которыми я хочу отправлять почту через thunderbird. Когда я пытаюсь отправить письмо таким образом, имя «От» правильное, но адрес электронной почты - это учетная запись, которую я использую для ретранслятора. Вот выдержка из моего журнала mail.log:
Mar 20 23:11:42 homeserver postfix/smtpd[12203]: connect from xxxx[ip address]
Mar 20 23:11:42 homeserver postfix/smtpd[12203]: setting up TLS connection from xxxx[ip address]
Mar 20 23:11:42 homeserver postfix/smtpd[12203]: Anonymous TLS connection established from xxxx[ip address]: TLSv1 with cipher AES256-SHA (256/256 bits)
Mar 20 23:11:42 homeserver postfix/smtpd[12203]: C5A4936E0228: client=xxxx[ip address], sasl_method=PLAIN, sasl_username=internalemail@domainnameiown.com
Mar 20 23:11:42 homeserver postfix/cleanup[12206]: C5A4936E0228: message-id=<4D867BA1.9080507@domainnameiown.com>
Mar 20 23:11:42 homeserver postfix/qmgr[11844]: C5A4936E0228: from=<internalemail@domainnameiown.com>, size=712, nrcpt=1 (queue active)
Mar 20 23:11:43 homeserver postfix/smtpd[12203]: disconnect from xxxx[ip address]
Mar 20 23:11:43 homeserver postfix/smtp[12207]: C5A4936E0228: to=<example@gmail.com>, relay=smtp.gmail.com[74.125.77.109]:587, delay=1, delays=0.18/0/0.41/0.43, dsn=2.0.0, status=sent (250 2.0.0 OK 1300659106 u45sm1482760eeh.9)
Mar 20 23:11:43 homeserver postfix/qmgr[11844]: C5A4936E0228: removed
Итак, когда я зашел на example@gmail.com, теперь адрес электронной почты отправителя неверен. Это неправильная настройка на моем домашнем сервере или клиент может это установить?
Насколько мне известно, если вы используете SMTP Gmail в качестве ретранслятора, он перезаписывает адрес отправителя в учетной записи Gmail. Кроме того, любой адрес для ответа перезаписывается в ту же учетную запись Gmail. Они делали это годами.
Я столкнулся с тем же, когда попытался установить Gmail в качестве хоста ретрансляции в Postfix. Этого не происходит с другими реле, которые я пробовал, поэтому я считаю, что это вещь Gmail. Я предполагаю, что Google делает это, чтобы системы не помечали почту как спам, поскольку исходный From не может быть легко проверен.
Для отдельных адресов, отличных от Gmail, вы можете настроить Gmail, проверив адрес. Видеть: http://mail.google.com/support/bin/answer.py?answer=22370
Для всех адресов в домене вы можете настроить домен для использования Google Apps, хотя я этого не пробовал. К сожалению, это не поможет, если вы ретранслируете почту для нескольких доменов.
См. Этот вопрос для более подробного обсуждения этого вопроса: Ретрансляция SMTP через GMail заменяет адрес "from:" на "[me] @ gmail.com"
В Postfix есть функция smtp_generic_maps.
Вы можете создать общий файл карт с помощью
postmap /path/to/map/file
Файл карты выглядит так
user@localhost user@remotehost
Затем добавьте
smtp_generic_maps = hash:/etc/postfix/generic
в main.cf
Письма от user @ localhost теперь будут доставляться как user @ remotehost через SMTP.