Centos 6 - Postfix не отправляет на собственный домен без флага

Centos 6 - Postfix не отправляет на собственный домен без флага

Я переношу сайт на другой сервер и у меня проблема с PHP mail. Но только при отправке почты на домен хоста например[email protected].

mail($send_to, 'Web contact' ,$message,null,"-r [email protected]");

Единственный способ отправить почту — добавить флаг -r. При этом, похоже, не имеет значения, какой адрес электронной почты введен после флага.

Это миграция с Centos 5 на 6, и я полагаю, что почта теперь использует Postfix, а не sendMail.

Есть ли настройка Postfix, которую можно изменить, чтобы не добавлять этот флаг к каждому вызову функции mail?

Кроме того, есть ли способ принудительно использовать sendMail вместо Postfix, если я не могу это исправить?

Я должен был упомянуть, что знаю, что почта маршрутизируется внутри сети, как показано в журнале:

РЕДАКТИРОВАТЬ

Это неудачная попытка без флага.

May 14 16:13:12 test sendmail[10244]: t4EFDCLq010244: from=apache, size=169, class=0, nrcpts=1, msgid=<[email protected]>, relay=apache@localhost
May 14 16:13:12 test postfix/smtpd[10245]: connect from localhost[127.0.0.1]
May 14 16:13:12 test postfix/smtpd[10245]: 9EFB3256738: client=localhost[127.0.0.1]
May 14 16:13:12 test postfix/cleanup[10248]: 9EFB3256738: message-id=<[email protected]>
May 14 16:13:12 test sendmail[10244]: t4EFDCLq010244: [email protected], ctladdr=apache (48/48), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30169, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 9EFB3256738)
May 14 16:13:12 test postfix/qmgr[10102]: 9EFB3256738: from=<[email protected]>, size=592, nrcpt=1 (queue active)
May 14 16:13:12 test postfix/smtpd[10245]: disconnect from localhost[127.0.0.1]
May 14 16:13:12 test postfix/smtp[10249]: 9EFB3256738: to=<[email protected]>, relay=mail.example.com[748.31.105.444]:25, delay=0.1, delays=0.04/0.01/0.01/0.03, dsn=5.0.0, status=bounced (host mail.example.com[748.31.105.444] said: 550-Verification failed for <[email protected]> 550-No Such User Here" 550 Sender verify failed (in reply to RCPT TO command))
May 14 16:13:12 test postfix/cleanup[10248]: B47B625675D: message-id=<[email protected]>
May 14 16:13:12 test postfix/bounce[10250]: 9EFB3256738: sender non-delivery notification: B47B625675D
May 14 16:13:12 test postfix/qmgr[10102]: B47B625675D: from=<>, size=2524, nrcpt=1 (queue active)
May 14 16:13:12 test postfix/qmgr[10102]: 9EFB3256738: removed
May 14 16:13:12 test postfix/smtp[10249]: B47B625675D: to=<[email protected]>, relay=mail.example.com[748.31.105.444]:25, delay=0.03, delays=0/0/0.01/0.02, dsn=5.0.0, status=bounced (host mail.example.com[748.31.105.444] said: 550 No Such User Here" (in reply to RCPT TO command))
May 14 16:13:12 test postfix/qmgr[10102]: B47B625675D: removed

И это с флагом

May 14 16:13:23 test sendmail[10251]: t4EFDN45010251: Authentication-Warning: example.com: apache set sender to [email protected] using -r
May 14 16:13:23 test sendmail[10251]: t4EFDN45010251: [email protected], size=169, class=0, nrcpts=1, msgid=<[email protected]>, relay=apache@localhost
May 14 16:13:23 test postfix/smtpd[10245]: connect from localhost[127.0.0.1]
May 14 16:13:23 test postfix/smtpd[10245]: 3B3EF256738: client=localhost[127.0.0.1]
May 14 16:13:23 test postfix/cleanup[10248]: 3B3EF256738: message-id=<[email protected]>
May 14 16:13:23 test postfix/qmgr[10102]: 3B3EF256738: from=<[email protected]>, size=662, nrcpt=1 (queue active)
May 14 16:13:23 test sendmail[10251]: t4EFDN45010251: [email protected], [email protected] (48/48), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30169, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 3B3EF256738)
May 14 16:13:23 test postfix/smtpd[10245]: disconnect from localhost[127.0.0.1]
May 14 16:13:24 test postfix/smtp[10249]: 3B3EF256738: to=<[email protected]>, relay=mail.example.com[748.31.105.444]:25, delay=1.4, delays=0.03/0/0.01/1.3, dsn=2.0.0, status=sent (250 OK id=1Ysup9-0001Rr-Jv)
May 14 16:13:24 test postfix/qmgr[10102]: 3B3EF256738: removed

Проблема, по-видимому, в том, что Postfix отклоняет сообщение пользователя Apache. В идеале я бы хотел, чтобы Postfix в любом случае отправлял сообщение этому пользователю.

Конфигурация постфикса

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = localhost.$mydomain
mydomain = example.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

решение1

Сначала нужно удалить один из MTA. Наличие двух MTA в одной системе может привести к неожиданному результату.Поскольку у меня есть опыт только с постфиксом, то я предлагаю вамудалить sendmail. После этого удаления mailкоманда будет использовать postfix вместо sendmail в качестве агента по умолчанию.

yum remove sendmail

Во-вторых, вы можете установитьпараметр sendmail по умолчанию в php.iniсsendmail_path параметр например

sendmail_path = '/usr/sbin/sendmail -t -i -f [email protected]'

PS: согласноэта страница руководства, -rфлаг — устаревшая форма флага -f. Поэтому я предпочитаю использовать -f.

Третье относительноваш комментарий:

Из журнала я вижу, что он подпрыгивает, потому что[email protected]не существует. Я добавил это, и это решает проблему, но есть ли настройка в Postfix, которую я могу добавить, чтобы[email protected]не нужно создавать?

Это сообщение об ошибке

550-Проверка не удалась для 550-Такого пользователя здесь нет" 550 Проверка отправителя не удалась

не был выброшен postfix. Письмо было отклонено вашим реальным почтовым сервером, mail.**z*.netкоторый работаетЭксим. Вам нужно поговорить с администратором Exim, почему он так себя ведет.

решение2

В вашем main.cfесть параметр, называемый mydestination. Удалите там форму доменного имени, и почта на домен больше не будет доставляться локально.

До:

mydestination = $myhostname, $mydomain

После:

mydestination = $myhostname

$myhostnameдолжны оставаться в этом списке для внутренних сообщений (cron, apt, сообщения об ошибках и т. д.)

Связанный контент