Подтвердить что ты не робот

Отправка почты занимает много времени в локальном хосте

Я использую Ubuntu.I установлен sendmail на моем локальном хосте, используя следующую команду

sudo apt-get install sendmail

Теперь я хочу проверить, идет ли почта с моего локального хоста, используя следующий php-код.

<?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 

Когда я выполняю код, он занимает очень много времени и, наконец, эхо сообщения в виде отправки почты. Есть ли возможность исправить это?

4b9b3361

Ответ 1

Отредактируйте файл /etc/hosts и убедитесь, что первая строка следующая:

127.0.0.1 localhost.localdomain localhost myhostname

Измените конфигурационный файл sendmail (/etc/mail/sendmail.cf в Ubuntu) и раскомментируйте line #O:

O HostsFile =/etc/hosts

Перезагрузите компьютер или запустите sudo service sendmail restart.

Теперь компьютер должен загружаться намного быстрее, а функция mail() должна возвращаться почти сразу.

ОДНАКО, письма не будут отправляться, если вы не выполните шаг 5.

При использовании функции почты вы должны использовать параметр sendmail -f.

Например:

mail('[email protected]', 'the subject', 'the message', null, '[email protected]');

Ответ 2

Я знаю, что на этот вопрос уже был дан ответ, но я отправляю это в надежде, что он может помочь кому-то еще найти другое решение этой проблемы.

Для меня мне просто нужно было установить полное доменное имя моего сервера (FQDN) в /etc/mailname. Например: server.example.com.

Перезапустите Sendmail, чтобы применить изменения.

$ sudo service sendmail restart

Ответ 3

Этот ответ помог мне https://serverfault.com/a/221894/186680

Postfix и sendmail, если они установлены. Удалено sendmail Yum remove sendmail

Ответ 4

Задержка обычно указывает на тайм-аут DNS. Является ли ваша машина настроенной с правильными записями DNS? Я бы попытался выполнить тест, используя почту в командной строке, так как это изолировало бы проблему.

Ответ 5

Если вы не знаете Sendmail хорошо, вы, вероятно, можете установить другую MTA. ssmtpd уже был предложен в другом ответе; общим выбором является Posfix.