Назад | Перейти на главную страницу

Проблема с отправкой электронной почты с "localhost.localdomain"

У меня есть сервер DigitalOcean, на котором работает Ubuntu 14.04. У меня проблемы с отправкой писем из PHP mail() функция (которая использует sendmail внутренне).

Я думаю, проблема может быть связана с моим hosts файл config. Вот что у меня есть /etc/hosts в данный момент:

127.0.0.1 localhost localhost.localdomain ip-xxx-xxx-xxx-xxx

И в etc/hostname:

ip-xxx-xxx-xxx-xxx

(В двух вышеупомянутых я заменил цифры IP-адреса на x)

Теперь у меня есть домен, указывающий на этот сервер, назовем его mydomain.com.

Итак, когда мой сайт mydomain.com отправляет электронное письмо, оно попадает в папку нежелательной почты. Я провел тест на https://www.mail-tester.com и одна из проблем, которые он выявляет:

Я пробовал добавить mydomain.com к строке выше в hosts файла, но это приводит к тому, что электронное письмо приходит через долгое время или вообще не приходит.

Вот заголовки Received:

Received: from localhost.localdomain (unknown [xxx.xxx.xxx.xxx])
    (using TLSv1.2 with cipher xxx (256/256 bits))
    (No client certificate requested)
    by mail-tester.com (Postfix) with ESMTPS id xxx
    for <test-xxx@mail-tester.com>; Mon, 29 Apr 2019 18:35:18 +0200 (CEST)

Received: from localhost.localdomain (localhost [127.0.0.1])
    by localhost.localdomain (8.15.2/8.15.2/Debian-3) with ESMTP id xxx
    for <test-xxx@mail-tester.com>; Mon, 29 Apr 2019 17:35:18 +0100

Received: from mydomain.com (www-data@localhost)
    by localhost.localdomain (8.15.2/8.15.2/Submit) with SMTP id xxx
    for <test-xxx@mail-tester.com>; Mon, 29 Apr 2019 17:35:18 +0100

Может кто-нибудь посоветовать, в чем может быть проблема и как ее исправить?

Никого не волнуют переходы внутри вашей инфраструктуры и количество проходящих локальных хостов. Но убедитесь, что ваш исходящий сервер говорит «Привет, я mail.domain.tld» вместо «Привет, я localhost.localdomain», потому что ни один правильно настроенный наполовину сервер не будет заинтересован в разговоре с неизвестными почтовыми серверами.

Я вижу в ссылках на заголовки, которые вы используете postfix(1) для обработки исходящих писем. Ищите переменную myhostname внутри твоего main.cf (обычно находится в /etc/postfix или /usr/local/etc/postfix) и залейте как следует. Пример: myhostname=mail.domain.tld (замените его именем вашего почтового сервера). Также убедитесь, что smtp_banner= содержит как минимум $myhostname лайк smtp_banner=$myhostname ESMTP Postfix.

Видеть этот для дополнительной информации.