2013-12-03 3 views
-1

Ни одно из моих сообщений Wordpress не отправляется в Gmail. Более подробная информация:Wordpress не отправляет письма в Gmail

  • Я использую EXIM почтового сервер
  • Я использую WordPress последнюю версию
  • это происходит только тогда, когда электронные письма отправляются в Gmail

журналы ЭКСИМБАНК говорит, что письмо будет отправлено в Gmail, но они не отправляются и не отправляются спамом.

+0

Gmail как smarthost или gmail как MX? – Jasen

ответ

0

Проблема представляет собой сочетание факторов:

  • Эксим, в отличие от постфикса, не автоматической настройки Sender Header
  • Gmail недавно сделал некоторые изменения, чтобы иметь дело со спамом лучше, и если заголовки электронной почты являются отсутствует заголовок Sender, он, скорее всего, отменит его молча или отправит его как спам.
  • Wordpress не устанавливает Sender Header

После того, как вы знаете, это, исправить это довольно просто. Если вы используете Wordpress, быстрый и грязный способ сделать это пойти в wp-includes/pluggable.php, искать для поиска wp_mail() функции для:

$phpmailer->From  = apply_filters('wp_mail_from'  , $from_email); 

затем добавьте следующий сразу после него:

$phpmailer->Sender = $phpmailer->From; 

Как только вы это сделаете, электронные письма будут работать, и вы можете исправить проблему надлежащим образом, не перезаписывая ядро, написав плагин. Wordpress использует phpmailer, который знает об этой проблеме, но Wordpress не использует ее. Существует также bug report по этой проблеме.

Чтобы решить эту проблему с помощью функции ядра mail(), вы должны сделать следующее:

// $sender can be the same email address as the From header 
mail($to, $subject, $message, $additional_headers, "-f {$sender}") 

Существует еще один вариант, который может работать, в зависимости от конфигурации вашего сервера (я не мог проверить его , очень хотелось бы, если кто-то может проверить это):

$sendmailFrom = ini_get('sendmail_path'); 
ini_set('sendmail_path', $sendmailFrom . ' -f [email protected]'); // or whatever you want 
+0

RFC5322 утверждает, что 'Sender:' является избыточным, когда содержимое будет соответствовать 'From:' любая система, требующая 'Sender:', которая соответствует 'From:', выходит за рамки правдоподобия. – Jasen

+0

@ Jasen Вау, ты поднимаешь мертвых :-) Это было> 3 года назад, не уверен, что это все еще так. –

0

Gmail (и, вероятно, Hotmail и Yahoo в конечном итоге) является starting to disable traditional SMTP authentication mechanisms (ОБЫЧНАЯ, LOGIN и CRAM-MD5) в пользу oauth2.

Если вы отправляете почту только с помощью WordPress (PHPMailer), Gmail откажется от нее или отметит ее как СПАМ. Если вы отправляете почту с помощью обычного плагина WordPress SMTP, Gmail выдаст вам ошибку аутентификации или заставит вас перепрыгнуть через обручи, такие как пароли приложений, двухфакторную аутентификацию и включение менее безопасных приложений в качестве настройки учетной записи.

Первый плагин для реализации OAuth 2.0 для WordPress (отказ от ответственности, я автор) - Postman SMTP. Если порт TCP 465 разрешает исходящие подключения к Gmail, ваши сообщения WordPress будут доставлены Postman без ошибок.

Смежные вопросы