URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89987
[ Назад ]

Исходное сообщение
"Тормозит Sendmail"

Отправлено bartwell , 08-Окт-10 18:27 
При попытке отправить письмо PHP-скриптом, mail() тормозит около минуты. Затем письмо все же отправляется... Подскажите пожалуйста, что можно сделать? Sendmail никогда не настраивал, плохо представляю, в чем может быть проблема.
В логах вот что:
Oct  7 17:14:16 a2 sm-mta[463]: o97DCjR4000435: to=<bartwell@XXX.ru>, ctladdr=<user@YYY.ru> (4832/4832), delay=00:01:11, xdelay=00:01:10, mailer=esmtp, pri=30404, relay=mail.XXX.ru. [111.111.111.111], dsn=2.0.0, stat=Sent (OK id=1P3qG4-0004MQ-RE)


Содержание

Сообщения в этом обсуждении
"Тормозит Sendmail"
Отправлено cryo , 08-Окт-10 19:17 
> При попытке отправить письмо PHP-скриптом, mail() тормозит около минуты. Затем письмо все
> же отправляется... Подскажите пожалуйста, что можно сделать? Sendmail никогда не настраивал,
> плохо представляю, в чем может быть проблема.
> В логах вот что:
>
Oct  7 17:14:16 a2 sm-mta[463]: o97DCjR4000435: to=<bartwell@XXX.ru>, ctladdr=<user@YYY.ru>
> (4832/4832), delay=00:01:11, xdelay=00:01:10, mailer=esmtp, pri=30404, relay=mail.XXX.ru.
> [111.111.111.111], dsn=2.0.0, stat=Sent (OK id=1P3qG4-0004MQ-RE)

Скорее всего, проблема с разрешением имен. Более вероятно, что именно локального имени (если в принципе dns работает и внешние имена резолвятся).
Проверь, резолвится ли твой внешний ip-адрес на этой машине. dig ptr -x твой-ip


"Тормозит Sendmail"
Отправлено bartwell , 08-Окт-10 19:50 
> Проверь, резолвится ли твой внешний ip-адрес на этой машине. dig ptr -x
> твой-ip

Выдает информацию об IP, без ошибок. Может можно еще где-то что-то посмотреть?


"Тормозит Sendmail"
Отправлено rusadmin , 09-Окт-10 19:05 
>> Проверь, резолвится ли твой внешний ip-адрес на этой машине. dig ptr -x
>> твой-ip
> Выдает информацию об IP, без ошибок. Может можно еще где-то что-то посмотреть?

На моей практике при отправке sendmail тупить начинает когда:
1. Включены проверки DNSBL (либо их много, либо скорость инета не айс)
2. Спам-фильтр

Но минута - это очень долго


"Тормозит Sendmail"
Отправлено bartwell , 09-Окт-10 19:20 
Спам-фильтра нет... Вообще, вроде бы настройка дефолтная: как сервер хостер сдал после установки системы, так sendmail никто и не трогал. Да и в целом, на этом сервере почта на прием не используется, нужна только отправка из скриптов. Может можно что-то как диагностировать?

"Тормозит Sendmail"
Отправлено Rusadmin , 09-Окт-10 20:27 
Sendmailовский mc файл можете показать?

"Тормозит Sendmail"
Отправлено bartwell , 10-Окт-10 00:36 
Если я правильно все понял, то вот содержимое файла /etc/mail/freebsd.mc:
divert(-1)
#
# Copyright (c) 1983 Eric P. Allman
# Copyright (c) 1988, 1993
#<----->The Regents of the University of California.  All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#<----->This product includes software developed by the University of
#<----->California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
#    may be used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#

#
#  This is a generic configuration file for FreeBSD 5.X and later systems.
#  If you want to customize it, copy it to a name appropriate for your
#  environment and do the modifications there.
#
#  The best documentation for this .mc file is:
#  /usr/share/sendmail/cf/README or
#  /usr/src/contrib/sendmail/cf/README
#

divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.30.2.4 2007/11/22 16:20:01 gshapiro Exp $')
OSTYPE(freebsd6)
DOMAIN(generic)

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

dnl Uncomment to allow relaying based on your MX records.
dnl NOTE: This can allow sites to use your server as a backup MX without
dnl       your permission.
dnl FEATURE(relay_based_on_MX)

dnl DNS based black hole lists
dnl --------------------------------
dnl DNS based black hole lists come and go on a regular basis
dnl so this file will not serve as a database of the available servers.
dnl For that, visit
dnl http://directory.google.com/Top/Computers/Internet/Abuse/Spa.../

dnl Uncomment to activate Realtime Blackhole List
dnl information available at http://www.mail-abuse.com/
dnl NOTE: This is a subscription service as of July 31, 2001
dnl FEATURE(dnsbl)
dnl Alternatively, you can provide your own server and rejection message:
dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-abuse.org/cgi-bin/lookup?" $&{client_addr}')

dnl Dialup users should uncomment and define this appropriately
dnl define(`SMART_HOST', `your.isp.mail.server')

dnl Uncomment the first line to change the location of the default
dnl /etc/mail/local-host-names and comment out the second line.
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
define(`confCW_FILE', `-o /etc/mail/local-host-names')

dnl Enable for both IPv4 and IPv6 (optional)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')

define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)



"Тормозит Sendmail"
Отправлено rusadmin , 10-Окт-10 11:25 
Возможно он ищет IDENT

попробуйте добавить в него
define(`confTO_IDENT', `0')dnl

Создайте новый конфиг
mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf_
m4  /etc/mail/freebsd.mc > /etc/mail/sendmail.cf

и перезапустите сэндмэйл


"Тормозит Sendmail"
Отправлено bartwell , 10-Окт-10 18:47 
Не помогает... Симптомы те же самые, ничего не поменялось.

"Тормозит Sendmail"
Отправлено rusadmin , 11-Окт-10 07:27 
> Не помогает... Симптомы те же самые, ничего не поменялось.

Попробуйте еще добавить в мс файл
FEATURE(`delay_checks')
хотя оно помогает при time out.... Но чем черт не шутит)


"Тормозит Sendmail"
Отправлено bartwell , 12-Окт-10 12:14 
> Попробуйте еще добавить в мс файл
> FEATURE(`delay_checks')
> хотя оно помогает при time out.... Но чем черт не шутит)

Надо попробовать :)


"Тормозит Sendmail"
Отправлено Medlar , 12-Окт-10 12:08 
включите полное логирование исходящих пакетов, т.о. вы сможете определить, куда стучится sendmail в течение этой минуты.

"Тормозит Sendmail"
Отправлено bartwell , 12-Окт-10 12:14 
> включите полное логирование исходящих пакетов, т.о. вы сможете определить, куда стучится
> sendmail в течение этой минуты.

А как это сделать?


"Тормозит Sendmail"
Отправлено Medlar , 12-Окт-10 12:20 
f.e., я использую для этого iptables

"Тормозит Sendmail"
Отправлено bartwell , 12-Окт-10 12:54 
> f.e., я использую для этого iptables

Понял, спасибо, вариант.


"Тормозит Sendmail"
Отправлено YuryD , 12-Окт-10 12:54 
> При попытке отправить письмо PHP-скриптом, mail() тормозит около минуты.
> плохо представляю, в чем может быть проблема.

Тормозить может и принимающая сторона ...


"Тормозит Sendmail"
Отправлено bartwell , 12-Окт-10 13:10 
>  Тормозить может и принимающая сторона ...

Да не, тут куда не отправь тормозит...


"Тормозит Sendmail"
Отправлено lavr , 12-Окт-10 20:07 
> При попытке отправить письмо PHP-скриптом, mail() тормозит около минуты. Затем письмо все
> же отправляется... Подскажите пожалуйста, что можно сделать? Sendmail никогда не настраивал,
> плохо представляю, в чем может быть проблема.
> В логах вот что:
>
Oct  7 17:14:16 a2 sm-mta[463]: o97DCjR4000435: to=<bartwell@XXX.ru>, ctladdr=<user@YYY.ru>
> (4832/4832), delay=00:01:11, xdelay=00:01:10, mailer=esmtp, pri=30404, relay=mail.XXX.ru.
> [111.111.111.111], dsn=2.0.0, stat=Sent (OK id=1P3qG4-0004MQ-RE)

сперва надо отделить мух от котлет:

- выяснить в чем проблема: в работе скриптов php или sendmail, потом
пилить одно, либо другое

- sendmail у вас вовсе не настроен, если торможение на различные адреса (желательно
проверять реальные, а не freemail), то вероятно переходить к следующему пункту
- смотреть dns
- смотреть объем отправляемых сообщений и ширину вашего канала и дальше...
- и тд и тп


"Тормозит Sendmail"
Отправлено bartwell , 14-Окт-10 15:59 
Ну да, проблема все-таки не в PHP, а именно в Sendmail.

А как вообще настроить Sendmail только на отправку писем для скриптов? Прием мне не нужен. Может быть готовый конфиг есть или статья?


"Тормозит Sendmail"
Отправлено lavr , 14-Окт-10 17:08 
> Ну да, проблема все-таки не в PHP, а именно в Sendmail.

ну так настройте и будет mail(php) работать без проблем

> А как вообще настроить Sendmail только на отправку писем для скриптов? Прием
> мне не нужен. Может быть готовый конфиг есть или статья?

:) подход к настройке самого sendmail не изменится от того outgoing он или в нормальном
рабочем режиме -bd на real_ip:25

Если у вас есть выход на внешний почтовый релей, например провайдера, то
установите ssmtp из портов и все дела: /usr/ports/mail/ssmtp


"Тормозит Sendmail"
Отправлено bartwell , 14-Окт-10 17:17 
> :) подход к настройке самого sendmail не изменится от того outgoing он
> или в нормальном
> рабочем режиме -bd на real_ip:25

Спасибо, не знал. Значит, похоже все же придется влазить в его изучение...

> Если у вас есть выход на внешний почтовый релей, например провайдера, то
> установите ssmtp из портов и все дела: /usr/ports/mail/ssmtp

Интересное решение, спасибо. Но, к сожалению, в данном случае не подходит, нужно свое...


"Тормозит Sendmail"
Отправлено lavr , 14-Окт-10 17:59 
>> :) подход к настройке самого sendmail не изменится от того outgoing он
>> или в нормальном
>> рабочем режиме -bd на real_ip:25
> Спасибо, не знал. Значит, похоже все же придется влазить в его изучение...
>> Если у вас есть выход на внешний почтовый релей, например провайдера, то
>> установите ssmtp из портов и все дела: /usr/ports/mail/ssmtp
> Интересное решение, спасибо. Но, к сожалению, в данном случае не подходит, нужно
> свое...

в смысле свое, в системной поставке? порты для того и существуют чтобы администратор
мог построить то что нужно ему и/или для рабочей ситуации!

в настройках ssmtp если память не изменяет, всего четыре строчки...
и получаем outgoing only smtp сервис


"Тормозит Sendmail"
Отправлено bartwell , 14-Окт-10 18:12 
> в смысле свое, в системной поставке?

Не, в смысле, чтобы можно было с произвольного адреса e-mail письма отправлять. Да и хостер релей не предоставляет...


"Тормозит Sendmail"
Отправлено lavr , 15-Окт-10 14:47 
>> в смысле свое, в системной поставке?
> Не, в смысле, чтобы можно было с произвольного адреса e-mail письма отправлять.

что значит с произвольного? Open Relay?

> Да и хостер релей не предоставляет...


"Тормозит Sendmail"
Отправлено bartwell , 15-Окт-10 23:51 
>>> в смысле свое, в системной поставке?
>> Не, в смысле, чтобы можно было с произвольного адреса e-mail письма отправлять.
> что значит с произвольного? Open Relay?
>> Да и хостер релей не предоставляет...

Ну просто что-то вроде небольшого хостинга и каждый пользователь должен иметь возможность подставить любой адрес e-mail в поле "От кого".