Рекомендации по использованию поля заголовка «from» в электронной почте PHP для предотвращения пометки спама - PullRequest
2 голосов
/ 25 января 2012

Я работаю над формой, которая позволит пользователям отправлять своим друзьям электронную почту. Форма будет иметь следующие поля:

  • с электронной почты
  • На электронную почту
  • Тема
  • Body

В идеале, поле "from" в заголовке электронного письма должно быть введенным пользователем адресом "From e-mail", чтобы получатель узнал отправителя.

Но я предполагаю, что установка поля "from" в заголовке в качестве введенного пользователем адреса "From e-mail" провалится SPF проверка и увеличит вероятность того, что письма будут помечены как спам

Каковы лучшие практики для:

  1. Разрешение электронной почте появляться (получателю) от отправителя "Из электронной почты"
  2. Уменьшение вероятности того, что электронное письмо будет помечено как спам.

При быстрой проверке

  • Функция "статьи по электронной почте" NY Times устанавливает поле "from" в заголовке на адрес электронной почты отправителя и попадает в мой почтовый ящик Yahoo.
  • AddThis установите поле "from" в заголовке на адрес электронной почты отправителя и попали в мою папку спама в Yahoo.
  • Delicious установил для поля "from" в заголовке значение "Delicious" и попал в мой почтовый ящик Yahoo.

1 Ответ

6 голосов
/ 25 января 2012

Если ваше доменное имя - example.com, заголовок FROM в исходящих письмах из формы должен быть примерно таким: info@example.com или noreply@example.com

Установить заголовок REPLY-TOна адрес «от», который вводит ваш пользователь в вашей форме.

Чтобы заставить получателя распознать адрес «ОТ», вы можете поместить имя отправителя в заголовок ОТ, поэтому, когда получатель увидитэлектронная почта приходит, она скажет что-то вроде "John Smith <noreply@example.com>"

Поскольку вы используете PHP, я предлагаю вам взглянуть на Swiftmailer.Это поможет вам избежать многих распространенных проблем с заголовками, а также предоставит отличные методы для создания и форматирования ваших электронных писем.

Официальный веб-сайт Swiftmailer: http://swiftmailer.org/

Ваш код может быть таким простым, как::

$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance()
    ->setSubject('This is the subject of your message')
    ->setFrom(array('noreply@example.com' => 'John Smith'))
    ->setReplyTo(array('john.smith@gmail.com' => 'John Smith'))
    ->setTo(array('recipient@example.com'))
    ->setBody('The body of your email goes here.');

$mailer->send($message);
...