Адрес электронной почты не доставлен Yahoo адрес от CakePHP

Я работаю над CakePHP3 Сохранить форму после отправки электронной почты пользователю.

Аккаунт Gmail получает электронную почту без каких-либо препятствий, но при отправке электронной почты на адрес Yahoo. электронная почта не поступает на учетные записи Yahoo.

Я использую торт по умолчанию Email класс для отправки электронной почты, предоставленный CakePHP 3. Я не делал никаких других настроек для отправки электронной почты, просто используйте приведенный ниже код.

Любая помощь будет присвоена. Заранее спасибо.

$email = new Email();
$email->setFrom(['me@example.com' => 'abc'])
    ->setTo('abc@yahoo.com')
    ->emailFormat('html')
    ->setSubject('Subject')
    ->send('Subject');

3 ответа

Если ваша электронная почта отправляется - как нам известно, поскольку она поступает на учетную запись Gmail - и не получает адрес Yahoo, это, скорее всего, означает, что Yahoo решила, что отправитель не заслуживает доверия. Пожалуйста, проверьте папку СПАМ. Это не проблема CakePHP.

CakePHP использует PHP mail функция по умолчанию. Вы также можете использовать доверенный SMTP сервер для доставки вашей почты, что увеличит вероятность успешной доставки.

Специально для Yahoo (и хорошей практики для любой отправки электронной почты) вам понадобится надлежащий сервер и настройка идентификации для почты, чтобы попасть в почтовый ящик пользователя.
Вы используете локальный SMTP-сервер? Если это так, (внешний) IP-адрес должен быть правильно настроен в записи SPF для домена, с которого вы отправляете.

Вы можете зарегистрироваться в петле обратной связи Yahoo и узнать, куда отправляются ваши электронные письма - https://help.yahoo.com/kb/SLN3438.html

Если Gmail получает электронное письмо, а Yahoo - нет, это означает, что Yahoo рассматривает ваше электронное письмо как спам. У Yahoo может быть много причин для этого (слишком много, чтобы вдаваться в подробности), но убедитесь, что вы используете доверенный SMTP-сервер для доставки электронной почты, а не полагаетесь на свой сервер (CakePHP будет использовать mail() по умолчанию, что не очень хорошо). Также рекомендуется отправлять как текстовые сообщения, так и сообщения в формате HTML, а не только последние; это очень выполнимо в CakePHP.

Вы можете найти эту статью полезной для Sendgrid: 10 советов, как сохранить электронную почту из папки спама.

Другие вопросы по тегам