LINUX.ORG.RU
ФорумAdmin

Настройка sendmail VPS Debian 7.7

 , ,


0

1

Подскажите как настроить sendmail на VPS с Debian. mail() возвращает false. В /var/log/mail.log есть только вот это:

Dec 12 12:02:53 Debian-77-wheezy-64-LAMP sendmail[20103]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:03:53 Debian-77-wheezy-64-LAMP sendmail[20103]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:03:53 Debian-77-wheezy-64-LAMP sendmail[20103]: alias database /etc/mail/aliases rebuilt by root
Dec 12 12:03:53 Debian-77-wheezy-64-LAMP sendmail[20103]: /etc/mail/aliases: 12 aliases, longest 10 bytes, 134 bytes total
Dec 12 12:03:53 Debian-77-wheezy-64-LAMP sm-mta[20161]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:03:55 Debian-77-wheezy-64-LAMP sm-msp-queue[20166]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:04:53 Debian-77-wheezy-64-LAMP sm-mta[20161]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:04:53 Debian-77-wheezy-64-LAMP sm-mta[20170]: starting daemon (8.14.4): SMTP+queueing@00:10:00
Dec 12 12:04:55 Debian-77-wheezy-64-LAMP sm-msp-queue[20166]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:08:19 Debian-77-wheezy-64-LAMP sm-mta[20199]: sBCB5E9q020199: localhost.localdomain [127.0.0.1] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA-v4
Dec 12 12:12:44 Debian-77-wheezy-64-LAMP sm-mta[21136]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:12:46 Debian-77-wheezy-64-LAMP sm-msp-queue[21141]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:13:44 Debian-77-wheezy-64-LAMP sm-mta[21136]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:13:44 Debian-77-wheezy-64-LAMP sm-mta[21145]: starting daemon (8.14.4): SMTP+queueing@00:10:00
Dec 12 12:13:48 Debian-77-wheezy-64-LAMP sendmail[21147]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:14:44 Debian-77-wheezy-64-LAMP sm-mta[2614]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:14:46 Debian-77-wheezy-64-LAMP sm-msp-queue[2767]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:15:44 Debian-77-wheezy-64-LAMP sm-mta[2614]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:15:44 Debian-77-wheezy-64-LAMP sm-mta[2981]: starting daemon (8.14.4): SMTP+queueing@00:10:00
Dec 12 12:15:46 Debian-77-wheezy-64-LAMP sm-msp-queue[2767]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:20:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3104]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:21:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3104]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 12:40:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3288]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 12:41:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3288]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 13:00:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3457]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 13:01:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3457]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 13:20:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3749]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 13:21:01 Debian-77-wheezy-64-LAMP sm-msp-queue[3749]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 13:40:01 Debian-77-wheezy-64-LAMP sm-msp-queue[4127]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 13:41:01 Debian-77-wheezy-64-LAMP sm-msp-queue[4127]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 14:00:01 Debian-77-wheezy-64-LAMP sm-msp-queue[4485]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 14:01:01 Debian-77-wheezy-64-LAMP sm-msp-queue[4485]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 14:10:28 Debian-77-wheezy-64-LAMP sendmail[4578]: My unqualified host name (Debian-77-wheezy-64-LAMP) unknown; sleeping for retry
Dec 12 14:11:28 Debian-77-wheezy-64-LAMP sendmail[4578]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 14:15:45 Debian-77-wheezy-64-LAMP sendmail[4578]: sBCDBSAG004578: from=root, size=0, class=0, nrcpts=0, relay=root@localhost

Из настроек sendmail только добавление строчки

sendmail_path = /usr/sbin/sendmail -t -i
в php.ini.

★★★

Тут не видно ошибок. Есть только предупреждение о том, что у тебя hostname кривой. Это, конечно, плохо, но проблема сейчас не в этом, а в чём-то другом.

AS ★★★★★ ()
Ответ на: комментарий от AS

Хостнейм поправил. Разницы никакой. Отправил с Webmin панели через sendmail - письмо дошло

Dec 12 14:40:54 Debian-77-wheezy-64-LAMP sendmail[5838]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 14:40:54 Debian-77-wheezy-64-LAMP sendmail[5838]: sBCDesYt005838: from=webmin@Debian-77-wheezy-64-LAMP, size=371, class=0, nrcpts=1, msgid=<1418391594.5809.1@Debian-77-wheezy-64-LAMP>, relay=root@localhost
Dec 12 14:40:54 Debian-77-wheezy-64-LAMP sm-mta[5886]: sBCDes6P005886: from=<webmin@Debian-77-wheezy-64-LAMP>, size=530, class=0, nrcpts=1, msgid=<1418391594.5809.1@Debian-77-wheezy-64-LAMP>, proto=ESMTP, daemon=MTA-v4, relay=localhost.localdomain [127.0.0.1]
Dec 12 14:40:54 Debian-77-wheezy-64-LAMP sendmail[5838]: sBCDesYt005838: to=zevilz13@yandex.ru, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30371, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (sBCDes6P005886 Message accepted for delivery)
Dec 12 14:41:01 Debian-77-wheezy-64-LAMP sm-msp-queue[5856]: unable to qualify my own domain name (Debian-77-wheezy-64-LAMP) -- using short name
Dec 12 14:41:57 Debian-77-wheezy-64-LAMP sm-mta[5888]: STARTTLS=client, relay=mx.yandex.ru., version=TLSv1/SSLv3, verify=FAIL, cipher=AES256-GCM-SHA384, bits=256/256
Dec 12 14:41:59 Debian-77-wheezy-64-LAMP sm-mta[5888]: sBCDes6P005886: to=<zevilz13@yandex.ru>, delay=00:01:05, xdelay=00:01:05, mailer=esmtp, pri=120530, relay=mx.yandex.ru. [77.88.21.89], dsn=2.0.0, stat=Sent (Ok: queued on mxfront6o.mail.yandex.net as cnFkyIiwAH-fwfG9Y0r)

zevilz ★★★ ()
Ответ на: комментарий от zevilz

Хостнейм поправил.

Значит, не везде поправил. Или не сказал killall -HUP sendmail. Честно говоря, я не помню, подхватывает ли Sendmail смену хостнейма на лету.

Отправил с Webmin панели через sendmail - письмо дошло

Значит всё работает. Это ведь тот же самый PHP ? Кстати, ко мне бы не дошло: если сообщение идёт с mail from:<webmin@Debian-77-wheezy-64-LAMP>, это ненужное сообщение. Адрес в mail from должен быть таким, куда можно доставить боунс, или там должно быть <>.

AS ★★★★★ ()
Ответ на: комментарий от AS

Странно, но service sendmail restart выдает:

[ ok ] Restarting Mail Transport Agent (MTA): sendmail.
а killall -HUP sendmail выдает:
sendmail: no process found
хост исправил только в /etc/hosts
webmin@Debian-77-wheezy-64-LAMP указано в поле from вебмина

zevilz ★★★ ()
Ответ на: комментарий от zevilz

хост исправил только в /etc/hosts

Это не исправил. hostname, вообще-то, раньше был в /etc/HOSTNAME. Сейчас /etc/HOSTNAME лучше делать симлинком на /proc/sys/kernel/hostname. А вот как задаётся hostname в /proc, зависит от дистрибутива. Если это VPS, возможно, это задано из хостситемы вообще.

webmin@Debian-77-wheezy-64-LAMP указано в поле from вебмина

Не важно, где это задано. Этого просто не должно быть в mail from.

sendmail: no process found

А кто слушает 25-ый порт на 127.0.0.1 ?

AS ★★★★★ ()
Ответ на: комментарий от AS

А кто слушает 25-ый порт на 127.0.0.1

Без понятия)) Как проверить?

Прописал домен в /etc/hostname. Выполнил sendmailconfig. В процессе конфигурации был вот такой фрагмент:

Creating /etc/mail/sendmail.cf...
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE() should be before MAILER()
 
Creating /etc/mail/submit.cf...
Informational: confCR_FILE file empty: /etc/mail/relay-domains
Informational: confCT_FILE file empty: /etc/mail/trusted-users
Updating /etc/mail/access...
Updating /etc/mail/aliases...
WARNING: local host name (Debian-77-wheezy-64-LAMP) is not qualified; see cf/README: WHO AM I?
/etc/mail/aliases: 12 aliases, longest 10 bytes, 134 bytes total
 
Warning: These messages were issued while creating sendmail.cf
	make sure they are benign before starting sendmail!
 
Errors in generating sendmail.cf
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE() should be before MAILER()
Далее перезапустил сервис sendmail и сделал ребут.

После ребута сделал отправку тестового сообщения:

php -r "mail('zevilz13@yandex.ru', 'Test Message', 'Test Text body');"
Письмо сразу же отправилось и сразу пришло.
Захожу на сайт и вижу содержимое /var/www/. Сам сайт находится там же в отдельной папке.

Потом вернул в /etc/hostname то, что было и ребутнул.

Отправка тестового сообщения прошла успешно, но с заметной задержкой. Сайт запустился нормально, но письма с него не уходят.

Сделал тестовый скриптик отправки сообщения, он мне вернул false.

P.S. на VPS планирую крутить несколько сайтов, но вот вопрос: если я сменю хостнейм на первый домен, то как быть с остальными доменами?

zevilz ★★★ ()
Ответ на: комментарий от zevilz

Без понятия))

Плохо. ОС надо изучить до того, как сервера на ней поднимать хоть какие. Случись что, надо будет уже чинить, а не только-только учиться.

Как проверить?

netstat -apn

Что касается

Creating /etc/mail/sendmail.cf...
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE() should be before MAILER()
1. Повесть баг на пакет в бактрекере Debian.
2. Поправить mc-файл, из которого делается sendmail.cf, самостоятельно. Вероятно это sendmail.mc.
3. Пересоздать sendmail.cf: m4 sendmail.mc > sendmail.cf (старый sendmail.cf сохрани на всякий случай).

AS ★★★★★ ()
Ответ на: комментарий от AS

Поправить mc-файл, из которого делается sendmail.cf, самостоятельно.

Еще бы я знал что именно править)) Вот содержимое sandmail.mc:

divert(-1)dnl
#-----------------------------------------------------------------------------
# $Sendmail: debproto.mc,v 8.14.4 2013-02-11 11:12:33 cowboy Exp $
#
# Copyright (c) 1998-2010 Richard Nelson.  All Rights Reserved.
#
# cf/debian/sendmail.mc.  Generated from sendmail.mc.in by configure.
#
# sendmail.mc prototype config file for building Sendmail 8.14.4
#
# Note: the .in file supports 8.7.6 - 9.0.0, but the generated
#       file is customized to the version noted above.
#
# This file is used to configure Sendmail for use with Debian systems.
#
# If you modify this file, you will have to regenerate /etc/mail/sendmail.cf
# by running this file through the m4 preprocessor via one of the following:
#       * make   (or make -C /etc/mail)
#       * sendmailconfig
#       * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# The first two options are preferred as they will also update other files
# that depend upon the contents of this file.
#
# The best documentation for this .mc file is:
# /usr/share/doc/sendmail-doc/cf.README.gz
#
#-----------------------------------------------------------------------------
divert(0)dnl
#
#   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.
#
#  This file is used to configure Sendmail for use with Debian systems.
#
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.4-4 2013-02-11 11:12:33 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl #   into this directory before writing files.
dnl #   If *all* your user accounts are under /home then use that
dnl #   instead - it will prevent any writes outside of /home !
dnl #   define(`confSAFE_FILE_ENV',             `')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove `, Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl #
dnl # Be somewhat anal in what we allow
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE(`use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE(`access_db', , `skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE(`greet_pause', `1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE(`delay_checks', `friend', `n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define(`confBAD_RCPT_THROTTLE',`3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define(`confCON_EXPENSIVE',`True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl

dnl # Masquerading options
FEATURE(`always_add_domain')dnl
MASQUERADE_AS(`static.120.212.46.78.clients.your-server.de')dnl
FEATURE(`allmasquerade')dnl
FEATURE(`masquerade_envelope')dnl

zevilz ★★★ ()
Последнее исправление: zevilz (всего исправлений: 1)
Ответ на: комментарий от zevilz

Еще бы я знал что именно править

Английский тоже не знаешь ? translate.ya.ru тогда:
*** ERROR: FEATURE() should be before MAILER()

AS ★★★★★ ()
Ответ на: комментарий от zevilz

уже понял, сделал))

Не знаю, как в Debian Sendmail разбит на подпакеты, но сейчас самое время посмотреть doc/op.me и cf/README. Возможно, всё это лежит в каком-нибудь sendmail-doc. Посмотри, что покажет apt-cache search sendmail .

AS ★★★★★ ()
Ответ на: комментарий от zevilz

Ну вот смотри в cf/README, в свой sendmail.mc и читай, что для чего надо. Может, что-то убрать, что-то добавить, что-то поправить.

AS ★★★★★ ()
Ответ на: комментарий от AS

Нашел причину. Строчка sendmail_path = /usr/sbin/sendmail -t -i была не прописана в ручную, а вставлена копипастом. Из за этого были добавлены лишние символы, видимо из-за кодировок. Теперь при использовании отдельного скрипта на домене письмо отправляется, но вот при использовании движка сайта (Wordpress) письма не доходят. И в обоих случаях письма долго отправляются (несколько минут).

zevilz ★★★ ()
Ответ на: комментарий от zevilz

но вот при использовании движка сайта (Wordpress) письма не доходят.

Опять же, логи.

И в обоих случаях письма долго отправляются (несколько минут).

И тут логи. Вероятнее, что что-то не резолвится.

С доменом разобрался, в mail from правильный попадает ?

AS ★★★★★ ()
Ответ на: комментарий от AS

Придумал другой hostname и заменил его в /etc/hostname. Отправка стала проходить без задержки. Насчет движка wordpress, то тут настроил отправку через smtp, отправка тоже заработала. Но все письма идут в спам. Что с отдельного скрипта на домене, что с сайта. Воможно из-за того, что в поле from попадает

admin@static.120.212.46.78.clients.your-server.de
Если отправлять тестовое сообщение через терминал, то письма в спам не идут, а в поле from попадает
root@static.120.212.46.78.clients.your-server.de
Может в курсе как это исправить? И желательно чтобы для каждого домена было свое значение from.

zevilz ★★★ ()
Ответ на: комментарий от zevilz

Воможно из-за того, что в поле from попадает

Возможно. У меня бы попали. На самом деле, я бы просто не стал даже принимать с таким PTR для IP и отбил бы на стадии connect.

И желательно чтобы для каждого домена было свое значение from.

У Sendmail есть ключик -f, а у PHP Mail() есть пятый необязательный параметр, где можно писать произвольный набор ключиков.

Mail(..... , '-f"<webmaster@my.dom>"')

Если не хочешь отслеживать судьбу отправленного, то
Mail(..... , '-f"<>"')

Вообще, в первом случае можно и -fwebmaster@my.dom, а вот во втором надо -f"<>", то есть, кавычки надо заэкранировать. На PHP не пишу, не знаю, как там правильно.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от zevilz

Т.е. это надо в самом движке вордпресса править функцию отправки ?

Может да, а, может, у него где-то в конфиге настраивается. Ну или, действительно, использовать smtp. Может быть, там из заголовка сообщения формируется. В смысле из «From:» или из «Return-Path:». Тут я не знаю, как в PHP функция соответствующая работает. Но по логу sendmail понятно будет.

AS ★★★★★ ()
Ответ на: комментарий от AS

А как ключик -f связан со значением поля from? он же только нужен для указания адреса возврата недоставленного сообщения.

И еще интересно откуда берутся root (при отправке через терминал), web (с сайта) и admin (со скрипта на домене) перед @static.120.212.46.78.clients.your-server.de

И вот еще судя по логу

Dec 13 13:11:26 peretyache sm-mta[16821]: sBDCBQ4O016821: from=<web@ideivita.ru>, size=564, class=0, nrcpts=1, msgid=<8b8425f75f6a704a63bdef92f9c6dd9e@ideivita.ru>, proto=ESMTP, daemon=MTA-v4, relay=localhost.localdomain [127.0.0.1]
Dec 13 13:12:29 peretyache sm-mta[16823]: STARTTLS=client, relay=mx.yandex.ru., version=TLSv1/SSLv3, verify=FAIL, cipher=AES256-GCM-SHA384, bits=256/256
Dec 13 13:12:30 peretyache sm-mta[16823]: sBDCBQ4O016821: to=<zevilz13@yandex.ru>, delay=00:01:04, xdelay=00:01:04, mailer=esmtp, pri=120564, relay=mx.yandex.ru. [87.250.250.89], dsn=2.0.0, stat=Sent (Ok: queued on mxfront2g.mail.yandex.net as Wey0vnK3cQ-CT3OYOH1)
во From стоит <web@ideivita.ru>, но в заголовках письма стоит web@static.120.212.46.78.clients.your-server.de

zevilz ★★★ ()
Последнее исправление: zevilz (всего исправлений: 2)
Ответ на: комментарий от zevilz

А как ключик -f связан со значением поля from?

Тут такой момент. Есть «From:» заголовка сообщения, а есть envelope from - from smtp-конверта. С точки зрения почтового сервера эти два from не связаны никак, «From:» заголовка сообщения идёт в блоке DATA и ни на что, в общем-то, не влияет. Как и «To:», кстати.

Связь между данными smtp-конверта и заголовка задаётся почтовым клиентом в момент передачи на первый smtp-сервер. Как правило, в «envelope from» попадают данные из Return-Path, а если это поле отсутствует, то из From. Аналогично с полями To, Cc, Bcc - по их данным формируется envelope to. Но это всё на совести именно почтового клиента.

При отправке с сайта через вызов bin/sendmail, если иное не задано ключиком -f, sendmail формирует envelope from в виде системных username@hostname, а не из полей From/Return-Path.

AS ★★★★★ ()
Ответ на: комментарий от zevilz

sm-mta[16821]: sBDCBQ4O016821: from=<web@ideivita.ru>

Это вот уже похоже на правду. Только вот а он есть ?

250 relay5.hosting.reg.ru
mail from:<>
250 2.1.0 Ok
rcpt to:<web@ideivita.ru>
450 4.3.2 Service currently unavailable

Так тоже не хорошо.

AS ★★★★★ ()
Ответ на: комментарий от AS

«From:» заголовка сообщения идёт в блоке DATA и ни на что, в общем-то, не влияет. Как и «To:», кстати.

Это с точки зрения протокола SMTP разумеется. Так-то разные MTA могут с разными целями поля заголовка сообщения разбирать и анализировать, защита от спама на этом может быть построена и т.п. Но это уже другая история.

AS ★★★★★ ()
Ответ на: комментарий от zevilz

он же только нужен для указания адреса возврата недоставленного сообщения.

И главное забыл: именно ввиду этого в mail from должно передаваться реально существующее значение E-Mail, либо специальная конструкция <>. В противном случае, в случае необходимости послать боунс на твои письма, боунсы будут замусоривать ящики местных постмастеров, и к тебе будет формироваться соответствующее отношение. А ещё бывает
http://en.wikipedia.org/wiki/Callback_verification

AS ★★★★★ ()
Ответ на: комментарий от AS

Короче не разобрался. Снес sendmail, закомментировал строчку sendmail_path = /usr/sbin/sendmail -t -i в php.ini, поставил exim4 и сконфигурировал его. Тут картина привлекательней. Затычки для вордпресса уже не нужны. Письма сразу приходят и не в спам и в поле from уже web@ideivita.ru:

Return-path: <web@ideivita.ru>
Authentication-Results: mxs.mail.ru; spf=pass (mx91.mail.ru: domain of ideivita.ru designates 78.46.212.120 as permitted sender) smtp.mailfrom=web@ideivita.ru smtp.helo=peretyache
Received-SPF: pass (mx91.mail.ru: domain of ideivita.ru designates 78.46.212.120 as permitted sender) client-ip=78.46.212.120; envelope-from=web@ideivita.ru; helo=peretyache;
Received: from [78.46.212.120] (port=59134 helo=peretyache)
	by mx91.mail.ru with esmtp (envelope-from <web@ideivita.ru>)
	id 1Xzmo8-0001ua-QJ
	for zevilz@mail.ru; Sat, 13 Dec 2014 16:32:29 +0300
X-Mru-BL: 0:0:0
X-Mru-PTR: static.120.212.46.78.clients.your-server.de
X-Mru-NR: 1
X-Mru-RC: DE
Received: from www-data by peretyache with local (Exim 4.80)
	(envelope-from <web@ideivita.ru>)
	id 1Xzmo7-0005pR-Ny
	for zevilz@mail.ru; Sat, 13 Dec 2014 14:32:27 +0100
To: zevilz@mail.ru
Subject: =?UTF-8?B?W9Cg0LDQt9Cy0LjRgtC40LUg0LvQuNGH0L3QvtGB0YLQuCDQuCDQsdC40Lc=?=  =?UTF-8?B?0L3QtdGB0LBdINCS0LDRiNC1INC40LzRjyDQv9C+0LvRjNC30L7QstCw0YI=?=  =?UTF-8?B?0LXQu9GPINC4INC/0LDRgNC+0LvRjA==?=
X-PHP-Originating-Script: 1000:class-phpmailer.php
Date: Sat, 13 Dec 2014 13:32:27 +0000
From: =?UTF-8?B?0JHQu9C+0LMg0JLQuNGC0LDQu9C40Y8g0J/QtdGA0LXRgtGP0YfQtdC90Lo=?=
 =?UTF-8?B?0L4=?= <web@ideivita.ru>
Message-ID: <39b597b71171f58c352bf78c33b8bdaa@ideivita.ru>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-DMARC-Policy: no
X-Mras: Ok
X-Mru-Authenticated-Sender: web@ideivita.ru
X-Spam: undefined
X-Spam-Status: NO
Теперь вот надо разобраться откуда берется web в адресе web@ideivita.ru

zevilz ★★★ ()
Ответ на: комментарий от zevilz

закомментировал строчку sendmail_path = /usr/sbin/sendmail -t -i в php.ini

И Postfix, и Exim имеют этот самый bin/sendmail для совместимости. Надо только уточнить, где он лежит.

Хотя, глядя вот на это

Received: from www-data by peretyache with local (Exim 4.80)
	(envelope-from <web@ideivita.ru>)
можно предположить, что что-то там ещё может быть для локальной отправки, раз PHP Mail() смог чем-то воспользоваться. В PHP, кстати, переменная sendmail_path не имеет ли значения по-умолчанию ?

Теперь вот надо разобраться откуда берется web в адресе web@ideivita.ru

Очевидно, где-то задано. :-)

Но вот с этим советую тоже разобраться: X-Mru-PTR: static.120.212.46.78.clients.your-server.de

Или, хотябы, вот сюда его внести:

host -t txt ideivita.ru
ideivita.ru descriptive text "v=spf1 include:_spf.hosting.reg.ru ip4:37.140.192.56 a mx ~all"
Но лучше PTR поправить. Точнее, лучше всё стазу. :-)

Или ideivita.ru - не твой домен ?

AS ★★★★★ ()
Ответ на: комментарий от AS

sendmail_path я пробовал и комментировать и добавлять туда /usr/sbin/exim4 -t. Разницы никакой.

Но вот с этим советую тоже разобраться: X-Mru-PTR: static.120.212.46.78.clients.your-server.de

Или, хотябы, вот сюда его внести:

host -t txt ideivita.ru ideivita.ru descriptive text «v=spf1 include:_spf.hosting.reg.ru ip4:37.140.192.56 a mx ~all»

Но лучше PTR поправить. Точнее, лучше всё стазу. :-)

А как с этим разобраться я не знаю))

я как раз и настраиваю на домен ideivita.ru. Вроде как работает нормально, но нужно чтобы письма приходили от info@ideivita.ru.

И, кстати, вот еще. Сделал 2 тестовых письма с отдельного скрипта на домене. В 1м указал X-Sender-IP: 78.46.212.120 (IP домена). Во втором - X-Sender-IP: 37.140.192.56 (IP почтового сервера). В обоих случаях письма попали в спам, в поле From уже указан верный адрес.
1.

Received: from mxfront5m.mail.yandex.net ([127.0.0.1])
	by mxfront5m.mail.yandex.net with LMTP id M8U4c36f
	for <zevilz13@yandex.ru>; Sat, 13 Dec 2014 17:22:08 +0300
Received: from static.120.212.46.78.clients.your-server.de (static.120.212.46.78.clients.your-server.de [78.46.212.120])
	by mxfront5m.mail.yandex.net (nwsmtp/Yandex) with ESMTPS id gUu0GBjox3-M7wOJH2i;
	Sat, 13 Dec 2014 17:22:07 +0300
	(using TLSv1.2 with cipher AES128-SHA (128/128 bits))
	(Client certificate not present)
X-Yandex-Front: mxfront5m.mail.yandex.net
X-Yandex-TimeMark: 1418480527
Authentication-Results: mxfront5m.mail.yandex.net; spf=pass (mxfront5m.mail.yandex.net: domain of ideivita.ru designates 78.46.212.120 as permitted sender) smtp.mail=info@ideivita.ru
X-Yandex-Spam: 4
Received: from www-data by peretyache with local (Exim 4.80)
	(envelope-from <info@ideivita.ru>)
	id 1XznZA-0000wq-4t
	for zevilz13@yandex.ru; Sat, 13 Dec 2014 15:21:04 +0100
To: zevilz13@yandex.ru
Subject: Ideivita.ru
X-PHP-Originating-Script: 1000:test.php
MIME-Version: 1.0
envelope-from: <smtp.reg.ru>
X-Sender-IP: 78.46.212.120
From: Blog <info@ideivita.ru>
Content-Type: text/html; charset=utf-8
Message-Id: <E1XznZA-0000wq-4t@peretyache>
Date: Sat, 13 Dec 2014 15:21:04 +0100
Return-Path: info@ideivita.ru
X-Yandex-Forward: 2a683300a9ab904d0e6548dfb3928aad
2.
Received: from mxfront1o.mail.yandex.net ([127.0.0.1])
	by mxfront1o.mail.yandex.net with LMTP id NuTisPGX
	for <zevilz13@yandex.ru>; Sat, 13 Dec 2014 17:23:56 +0300
Received: from static.120.212.46.78.clients.your-server.de (static.120.212.46.78.clients.your-server.de [78.46.212.120])
	by mxfront1o.mail.yandex.net (nwsmtp/Yandex) with ESMTPS id 0DFGxIZpe5-NupaLH56;
	Sat, 13 Dec 2014 17:23:56 +0300
	(using TLSv1.2 with cipher AES128-SHA (128/128 bits))
	(Client certificate not present)
X-Yandex-Front: mxfront1o.mail.yandex.net
X-Yandex-TimeMark: 1418480636
Authentication-Results: mxfront1o.mail.yandex.net; spf=pass (mxfront1o.mail.yandex.net: domain of ideivita.ru designates 78.46.212.120 as permitted sender) smtp.mail=info@ideivita.ru
X-Yandex-Spam: 4
Received: from www-data by peretyache with local (Exim 4.80)
	(envelope-from <info@ideivita.ru>)
	id 1Xznbv-0000xW-Pe
	for zevilz13@yandex.ru; Sat, 13 Dec 2014 15:23:55 +0100
To: zevilz13@yandex.ru
Subject: Ideivita.ru
X-PHP-Originating-Script: 1000:test.php
MIME-Version: 1.0
envelope-from: <smtp.reg.ru>
X-Sender-IP: 37.140.192.56
From: Blog <info@ideivita.ru>
Content-Type: text/html; charset=utf-8
Message-Id: <E1Xznbv-0000xW-Pe@peretyache>
Date: Sat, 13 Dec 2014 15:23:55 +0100
Return-Path: info@ideivita.ru
X-Yandex-Forward: 2a683300a9ab904d0e6548dfb3928aad

zevilz ★★★ ()
Последнее исправление: zevilz (всего исправлений: 1)
Ответ на: комментарий от AS

Сделал как по ссылке. Ничего не изменилось. Проблему решил плагином WP Mail Bank для Wordpress.

Received: from mxfront7h.mail.yandex.net ([127.0.0.1])
	by mxfront7h.mail.yandex.net with LMTP id 5OxS6KCr
	for <zevilz13@yandex.ru>; Sat, 13 Dec 2014 18:05:24 +0300
Received: from static.120.212.46.78.clients.your-server.de (static.120.212.46.78.clients.your-server.de [78.46.212.120])
	by mxfront7h.mail.yandex.net (nwsmtp/Yandex) with ESMTPS id Y1twI4ISSo-5Ovqwwcv;
	Sat, 13 Dec 2014 18:05:24 +0300
	(using TLSv1.2 with cipher AES128-SHA (128/128 bits))
	(Client certificate not present)
X-Yandex-Front: mxfront7h.mail.yandex.net
X-Yandex-TimeMark: 1418483124
Authentication-Results: mxfront7h.mail.yandex.net; spf=pass (mxfront7h.mail.yandex.net: domain of ideivita.ru designates 78.46.212.120 as permitted sender) smtp.mail=info@ideivita.ru
X-Yandex-Spam: 1
Received: from www-data by peretyache with local (Exim 4.80)
	(envelope-from <info@ideivita.ru>)
	id 1XzoG4-0001Ew-3H
	for zevilz13@yandex.ru; Sat, 13 Dec 2014 16:05:24 +0100
To: zevilz13@yandex.ru
Subject: Test Email
X-PHP-Originating-Script: 1000:class-phpmailer.php
Date: Sat, 13 Dec 2014 15:05:24 +0000
From: =?UTF-8?B?0JHQu9C+0LMg0JLQuNGC0LDQu9C40Y8g0J/QtdGA0LXRgtGP0YfQtdC90Lo=?=
 =?UTF-8?B?0L4=?= <info@ideivita.ru>
Message-ID: <78cdf2e80794e121ad8724982345a87f@ideivita.ru>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Return-Path: info@ideivita.ru
X-Yandex-Forward: 2a683300a9ab904d0e6548dfb3928aad

zevilz ★★★ ()
Ответ на: комментарий от zevilz

Но лучше PTR поправить. Точнее, лучше всё стазу. :-)

А как с этим разобраться я не знаю))

С PTR - это к хостеру. С SPF - к тому, кто может поправить данные в зоне ideivita.ru.

AS ★★★★★ ()
Ответ на: комментарий от zevilz

SPF то вроде как настроена у регистратора

Я же показал, как SPF выглядит. 78.46.212.120 там отсутствует, надо добавить.

AS ★★★★★ ()
Ответ на: комментарий от zevilz

spf прописан у регистратора на IP 37.140.192.56

И я про то. 78.46.212.120, соответственно, в лучшем случае, нейтральный отправитель, но никак не доверенный.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Я думал отправителем считается тот ip, который прописан в DNS записях для почты. Сейчас это выглядит вот так.

А каким образом можно прописать spf и где?

zevilz ★★★ ()
Ответ на: комментарий от zevilz

Я думал отправителем считается тот ip, который прописан
в DNS записях для почты.

Нет конечно. Отправитель тот, кто отправляет. :-)

А каким образом можно прописать spf и где?

Руками. Там, где настраиваются записи зоны (домена).

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от zevilz

Т.е. можно просто сменить IP в SPF записи у регистратора?

Он там, наверное, зачем-то нужен был ? Не сменить, а добавить.

AS ★★★★★ ()
Ответ на: комментарий от AS

netstat -apn

Правильно так: netstat -ltpn

-a покажет все соединения, это лишнее, а -t только tcp

sdio ★★★★★ ()
Ответ на: комментарий от AS

killall -HUP sendmail

killall слишком неоднозначная команда и на разных системах работает по разному. Из под рута лучше не рисковать. Пользуйся pkill если очень хочется по имени процесса сигналы посылать.

sdio ★★★★★ ()
Ответ на: комментарий от sdio

Из под рута лучше не рисковать.

В общем-то, никакого риска, если знаешь её поведение у себя. Ну а не знаешь - узнаешь после первого раза. Ничего плохого она не сделает. Если имя sendmail окажется у какого-то другого процесса, это проблемы того процесса. И, вероятнее всего, это будет какой-то странный процесс, с происхождением которого надо будет разобраться детально.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

killall может убить ВСЁ — уйдет твой сервер в шатдаун, будет тебе «узнаешь после первого раза»

killall Command

Purpose

       Cancels all processes except the calling process.

Syntax

       killall [ - ] [ -Signal ]

Description

       The killall command cancels all processes that you started, except
       those producing the killall process. This command provides a convenient
       means of canceling all processes created by the shell that you control.
       When started by a root user, the killall command cancels all
       cancellable processes except those processes that started it. If
       several Signals are specified, only the last one is effective.

       If no signal is specified, the killall command sends a SIGKILL signal.

sdio ★★★★★ ()
Ответ на: комментарий от sdio

killall может убить ВСЁ

Может. Но я же не предлагаю его использовать без указания "-HUP", да ? И без указания имени конкретного процесса ? Так-то и rm тогда использовать вредно.

AS ★★★★★ ()
Ответ на: комментарий от AS

Имя процесса, указанной killall пофигу, а от -HUP процессы тоже дохнуть могут. Если ты не знаешь, то просто поверь.

sdio ★★★★★ ()
Ответ на: комментарий от sdio

Имя процесса, указанной killall пофигу

Как раз нет.

Если ты не знаешь, то просто поверь.

Ещё раз. Заставь killall послать любой сигнал произвольному процессу, указав sendmail в качестве имени. Потом возвращайся со страшилками. Ты это сможешь сделать, как максимум, только переименовав этот самый процесс.

AS ★★★★★ ()
Ответ на: комментарий от sdio

Имя процесса, указанной killall пофигу,

KILLALL(1)                              User Commands                              KILLALL(1)

NAME
       killall - kill processes by name

SYNOPSIS
       killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interac‐
       tive] [-o, --older-than TIME] [-q, --quiet] [-r, --regexp] [-s, --signal signal]
       [-u, --user user] [-v, --verbose] [-w, --wait] [-y, --younger-than TIME]
       [-I, --ignore-case] [-V, --version] [--] name ...
       killall -l
       killall -V, --version

А у тебя какой-то негодный killall :-)

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от sdio

Упрямство частый признак глупости.

Ты лучши расскажи, откуда у тебя такой killall. Дебиан не нашёлся под руками, нашлась Ubuntu. killall там тот же самый, что всю жизнь был в RedHat. И он себя так не ведёт, он «kill processes by name», а вовсе не all.

AS ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.