очень долго отправляется письмо php функцией mail()

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
surok
рядовой
Сообщения: 21
Зарегистрирован: 2010-05-01 20:54:20

очень долго отправляется письмо php функцией mail()

Непрочитанное сообщение surok » 2010-05-01 21:54:03

Добрый вечер!
У меня возникла проблема, на новый сервер была установлена FreeBSD 8.0, пересобрано ядро, установлены nginx + apache 2.2 + php 5.2.12
При отправке письма через php функцию mail(), письмо отправляется почти 4 секунды, при этом скрипт висит так как ждёт возвращения управления ему.
Вот этот участок кода, ничего необычно как видите тут нет:

Код: Выделить всё

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n";
$headers .= "From: =?utf-8?B?" . base64_encode("Автоинформатор") . "?= <mailer@xxxx.ru>\r\n";
$subject = "Тема сообщения!";
$text = "Собственно текст письма";
mail("xxx@mail.ru", "=?utf-8?B?" . base64_encode($subject) . "?=", $text, $headers);
когда комментирую функцию mail(); скрипт выполняется за 0,002 секунды, если не комментировать то 5,2810
В чём причина понять не могу :(
Вот часть лога из /var/log/maillog

Код: Выделить всё

May  1 22:42:01 svr1 sendmail[26148]: o41Ig1GD026148: from=www, size=1088, class=0, nrcpts=1, msgid=<201005011842.o41Ig1GD026148@svr1.xxxx.ru>, relay=www@localhost
May  1 22:42:07 svr1 sm-mta[26149]: o41Ig6aZ026149: from=<www@svr1.xxxx.ru>, size=1341, class=0, nrcpts=1, msgid=<201005011842.o41Ig1GD026148@svr1.xxxx.ru>, proto=ESMTP, daemon=Daemon0, relay=localhost [127.0.0.1]
May  1 22:42:07 svr1 sendmail[26148]: o41Ig1GD026148: to=xxx@mail.ru, ctladdr=www (80/80), delay=00:00:06, xdelay=00:00:06, mailer=relay, pri=31088, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o41Ig6aZ026149 Message accepted for delivery)
May  1 22:42:09 svr1 sm-mta[26151]: o41Ig6aZ026149: to=<xxx@mail.ru>, delay=00:00:02, xdelay=00:00:02, mailer=esmtp, pri=31341, relay=mxs.mail.ru. [94.100.176.20], dsn=2.0.0, stat=Sent (OK id=1O8HdS-0009nQ-00)
Айпи адрес машины в подсети 192.168.0.18 (это на всякий случай :oops: )
У других серверов в этой же подсети всё нормально, а тут не могу понять в чём проблема.
Заранее очень благодарен за советы и помощь!!!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

surok
рядовой
Сообщения: 21
Зарегистрирован: 2010-05-01 20:54:20

Re: очень долго отправляется письмо php функцией mail()

Непрочитанное сообщение surok » 2010-05-02 17:59:33

Пока не найдя решения, переписал код на отправку через сокет, так по оптимальнее, скрипт не висит так как управления не теряет, да и за отправку уже отвечает непосредственно почтовый сервер. НО всё таки хочется понять в чем проблема при отправке через mail(); :oops:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35469
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: очень долго отправляется письмо php функцией mail()

Непрочитанное сообщение Alex Keda » 2010-05-03 12:10:21

в вызове шендмыла.
поставьте exim и подправьте mailer.conf - будут десятые секунды.
но оно всё равно медленно - там минимум 1 форк - накладно очень
Убей их всех! Бог потом рассортирует...