Отправка почты занимает много времени в локальном хосте - PullRequest
17 голосов
/ 28 сентября 2011

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

sudo apt-get install sendmail

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

<?php
$to = "test@test.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 

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

Ответы [ 5 ]

14 голосов
/ 05 сентября 2012

Отредактируйте файл /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.

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

Например:

mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
2 голосов
/ 25 октября 2013

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

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

2 голосов
/ 29 ноября 2012

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

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

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

$ sudo service sendmail restart

0 голосов
/ 28 сентября 2011

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

0 голосов
/ 28 сентября 2011

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

...