Проблема представляет собой сочетание факторов:
- Эксим, в отличие от постфикса, не автоматической настройки
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
Gmail как smarthost или gmail как MX? – Jasen