sendmail — проблема с SPF при отправке автоматической электронной почты с переполнением стека

У меня проблема с SPF, отправляющая автоматическое электронное письмо пользователям, которые регистрируются на моем сайте.

Просматривая «оригинальное» письмо в gmail, я получил следующее сообщение с информацией о Cpanel и имени хоста вместо письма, с которого я отправил письмо, и имени моего веб-сайта. При отправке электронных писем вручную с помощью веб-почты все работает просто отлично.

Вот что я получаю из Gmail

Delivered-To: [email protected]

Received: by 10.76.116.7 with SMTP id js7csp261337oab;
Fri, 28 Nov 2014 18:37:45 -0800 (PST)

X-Received: by 10.70.133.41 with SMTP id oz9mr78655916pdb.46.1417228665423;
Fri, 28 Nov 2014 18:37:45 -0800 (PST)

Return-Path: <cpanel_login@hostname>

Received: from hostname (hostname [ip address*)
by mx.google.com with ESMTPS id gb9si5051542pac.60.2014.11.28.18.37.44
for <[email protected]>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Fri, 28 Nov 2014 18:37:45 -0800 (PST)

Received-SPF: none (google.com: cpanel_logim@hostname does not designate permitted sender hosts) client-ip=ip address;

Authentication-Results: mx.google.com;
spf=none (google.com: cpanel_login@hostname does not designate permitted sender hosts) smtp.mail=cpanel_login@hostname

Received: from cpanel_login by hostname with local (Exim 4.82)
(envelope-from <cpanel_login@hostname>)
id 1XuXun-00065P-Hb
for [email protected]; Fri, 28 Nov 2014 18:37:44 -0800

To: [email protected]

Subject: Activate your account

X-PHP-Script: www.mywebsite.com/email.php for 110.174.16.98

From: "Mywebsite" <[email protected]>

Content-Type: text/html; charset="utf-8"Content-Transfer-Encoding: 8bitReturn-Path: <[email protected]>
Message-Id: <E1XuXun-00065P-Hb@hostname>
Date: Fri, 28 Nov 2014 18:37:41 -0800

Для отправки электронного письма я использую функцию php mail

mail ($ useremail, $ subject, $ emailBody, $ headers);

Есть идеи о том, что мне не хватает?
ура

1

Решение

Если вы отправите электронное письмо таким образом, хост-сервер будет использовать адрес по умолчанию для вашей учетной записи в качестве пути возврата. Вы можете попробовать добавить пятый параметр в mail() как это:

mail($to, $subject, $body, $headers, '-f'.$returnAddress);

где $ returnAddress такой же, как ваш From: адрес.

Это не гарантируется, так как некоторые системы отмечают тот факт, что вы использовали -f параметр в качестве индикатора спама.

В любом случае, вы намного лучше делаете жизнь проще, используя PHPMailer делать работу

0

Другие решения

Попробуйте использовать 5-й аргумент mail функция

mail(to, subject, message, headers, "[email protected]");

иначе sendmail использует информацию учетной записи в return-path поле.

0

По вопросам рекламы [email protected]