Моя установка: я запускаю веб-сайт Magento на сервере Amazon Linux (который, по-видимому, в основном CentOS) с веб-сервером Apache. Я также использую Google Apps для управления почтой mydomain.com.
Мне удалось успешно настроить записи MX, SPF и DKIM для сервера и заставить их работать, так что я получаю «Pass» для SPF и DKIM при отправке электронных писем. Тем не менее, я столкнулся со странной проблемой, которую, похоже, не могу обойти - часть заголовка писем, которые я посылаю, кажется, всегда говорит:
Received: (from apache@localhost) by mydomain.com
Я искал высоко и низко способ изменить это, чтобы использовать вместо него «mail@mydomain.com», но я просто не могу понять это.
Среди вещей, которые я пробовал:
- Изменение php.ini, чтобы сказать: / usr / sbin / sendmail -t -i -f mail@mydomain.com
- Добавление к виртуальному хосту mydomain.conf строки: ServerAdmin mail@mydomain.com
- Для параметра Return-Path установлено значение «Да» в бэкенде Magento (Система -> Конфигурация -> Дополнительно -> Система -> Настройки отправки почты.
Если это поможет, содержимое моего файла / etc / hosts выглядит следующим образом:
127.0.0.1 www.mydomain.com
127.0.0.1 mydomain.com
127.0.0.1 localhost localhost.localdomain
Для последней строки файла hosts я также попробовал вариант ...
127.0.0.1 localhost.localdomain mydomain.com
... но это все равно не сработало.
Я подумал, что это также может помочь, если я добавлю заголовки письма, в случае, если это может дать некоторые подсказки о том, что может происходить (я изменил много значений, чтобы сделать его обобщенным).
Delivered-To: zerowing@email.com
Received: by 123.123.123.123 with SMTP id abcdefg123456790;
Fri, 3 Apr 2015 08:35:04 -0700 (PDT)
X-Received: by 456.456.456.456 with SMTP id asdfqwerhjkl234hjkl.789.78909876789;
Fri, 03 Apr 2015 08:35:03 -0700 (PDT)
Return-Path: <mail@mydomain.com>
Received: from mydomain.com (ec2-11-11-111-11.amazonaws.com. [66.66.777.77])
by mx.google.com with ESMTPS id asdkfjhkjdfha839383.105.2015.04.03.08.35.02
for <zerowing@email.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Fri, 03 Apr 2015 08:35:03 -0700 (PDT)
Received-SPF: pass (google.com: domain of mail@mydomain.com designates 66.66.777.77 as permitted sender) client-ip=66.66.777.77;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of mail@mydomain.com designates 66.66.777.77 as permitted sender) smtp.mail=mail@mydomain.com;
dkim=pass header.i=@mydomain.com
Received: from mydomain.com (www.mydomain.com [127.0.0.1])
by mydomain.com (8.14.4/8.14.4) with ESMTP id t33FZ29p004251
for <zerowing@email.com>; Fri, 3 Apr 2015 15:35:02 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mydomain.com;
s=default; t=fjIFDJF9049;
bh=fjO4J4f09j409JF04J909f4j904JF940F9/Y=;
h=To:Subject:From:Date;
b=F4J90FJ490j09j490FJ094J0j94f90j409j490Jf90j904JF09j490fj904jf094J
f09J40F9J904fj049J099j49J049J0FJijffjdlfjldkDLFJKLdjflEJFOIJFOEIEO
JF9JF049j409j0F094J09FJ049jf049j=
Received: (from apache@localhost) <----------- THIS IS WHAT I'M TRYING TO CHANGE
by mydomain.com (8.14.4/8.14.4/Submit) id fkdjfljlfsra39393;
Fri, 3 Apr 2015 15:35:01 GMT
Message-Id: <201504031535.fkdjfljlfsra39393@mydomain.com>
To: =?utf-8?B?Sm9lIEdhcmNpYQ==?= <zerowing@email.com>
Subject: =?utf-8?B?VGVzdCBOZXdzbGV0dGVyLCBwbGVhc2UgaWdub3Jl?=
X-PHP-Originating-Script: 48:Sendmail.php
From: "mydomain.com" <mail@mydomain.com>
Date: Fri, 03 Apr 2015 15:35:01 +0000
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
MIME-Version: 1.0
Часть меня не уверена, нормально ли это, и я не уверена, что может вызвать появление apache @ localhost, но если у кого-то есть идея, это будет высоко оценено, спасибо!
Редактировать MTA, который я использую - Sendmail. Вот изменения конфигурации, которые я внес в файл sendmail.mc для размещения на моем сайте.
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
define(`confCW_FILE', `/etc/mail/local-host-names')dnl
dnl define(`confDOMAIN_NAME', `mydomain.com')dnl
Редактировать Я не уверен, что этот вопрос снова был помечен как дубликат, поэтому я подумал, что должен подчеркнуть причину, почему он не основан на упомянутом вопросе, почему это не так. Переход на Postfix - это не решение, а скорее обходной путь. Я не хотел бы выкорчевать всю настройку, которую я сделал с Sendmail до сих пор, только чтобы столкнуться с другими потенциальными проблемами, пытающимися заставить Postfix работать вместо этого. Я также уже упоминал о редактировании команды sendmail в php.ini, если вы прочитали пункты, упомянутые выше.
Править Я подумал, что мог бы также упомянуть некоторые другие вещи, которые я пытался сделать, которые не работали. Я добавил в свой sendmail.mc следующие строки:
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
Затем я создал файл generics-domains с одной строкой «mydomain.com» внутри. Затем я создал универсальный файл с одной строкой «apache mail@homebrewsupply.com» внутри. Я запустил make в почтовом каталоге, пересоздал файл cf и перезапустил sendmail, но без кубиков.
Я попытался отредактировать файл / etc / aliases. Я попытался изменить строку «apache: root», чтобы сказать «apache: root, mail @ mydomain.com», а также просто «apache: mail@mydomain.com», но это тоже ничего не дало.
Я также попытался добавить в файл / etc / mail / virtuserstable одну строку «apache @ localhost mail@mydomain.com». Это тоже ничего не делало.
Я удивлен тем, как расстраивает то, как это работает должным образом. Я так близок к тому, чтобы получить его там, где он мне нужен, но я, честно говоря, не знаю, где искать замену строки «apache @ localhost».
источник
Ответы:
Адрес электронной почты от - это пользователь демона, который вызвал отправку сообщения (apache) @ имя домена, настроенное в вашем MTA (sendmail или postfix).
Если ваш локальный MTA - postfix, вам нужно изменить настройку myorigin (по умолчанию это настроенное имя хоста. Localhost в этом примере). Этот параметр находится в main.cf (расположение по умолчанию в большинстве дистрибутивов
/etc/postfix/main.cf
). Просто измените его на доменное имя, с которого вы хотите отправить. Затем перезапустите постфикс.Конечно, вам может быть проще просто изменить имя хоста сервера в соответствии с желаемым доменом отправки.
Имейте в виду, что если вы собираетесь отправлять электронную почту с этого сервера для этого домена, вы захотите добавить запись SPF DNS, позволяющую это сделать, иначе ваши сообщения, скорее всего, будут сбрасываться фильтрами спама.
источник
Просматривая ваш конфиг, кажется, что пропущено несколько битов (и извините за мой синтаксис, я не публикую часто):
Вы, вероятно, захотите добавить параметр конфигурации MASQUERADE_DOMAIN, чтобы использовать MASQUERADE_AS, сопоставляя MASQUERADE_DOMAIN с любым полным доменным именем хоста (hostname -f на большинстве платформ linux). У меня было что-то странное, если их там нет, так что это будет:
а затем эта строка:
Должно быть действительно
или это будет игнорироваться командами make / hash при обновлении файла sendmail.cf. Этот парень дает отличное объяснение, почему В чем разница между "dnl" и "dnl #" в файле sendmail.mc?
Я все еще пытаюсь избавиться от части "apache" на моем собственном сервере, но я надеюсь, что это немного приблизит вас!
источник
Система -> Конфигурация -> Дополнительно -> Система -> Установить путь возврата -> Да
или установите его для электронной почты, которую вы хотите использовать. Только что нашел это сегодня - по-видимому, некоторые письма были отклонены почтовыми серверами со строгими правилами (.edu, .gov ... и т. Д.)
источник
Добавить
define(`confRECEIVED_HEADER', `internal info removed')dnl
вsubmit.mc
генерировать.cf
файл и перезапустить ,sendmail
как обычно.Важно: файл, который нужно отредактировать, чтобы это работало, есть
submit.mc
, а НЕsendmail.mc
. Еслиsendmail.mc
вместо этого вы отредактируете файл, тоReceived
заголовок над тем, который вы упомянули, будет изменен (то естьReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Примечание. Вместо литеральной строки
internal info removed
вы можете повторно использовать предоставленную информацию, скрывая конфиденциальную, например:by $j id $i; $b
получитьby DOMAIN id ID; TIMESTAMP
.Вышеуказанное удалит / заменит информацию после указанного
Received
вами заголовка:Смотрите также похожий вопрос: Как удалить версию Received: (от apache @ localhost) и версию sendmail из заголовков
источник