
Как настроить PHP для отправки почты с помощью mail() через удаленный SMTP-сервер?
Я пытался сделать это с помощью php.ini, но, похоже, это можно сделать только под Windows32, а я хочу сделать это на своем Unix-сервере.
Я также пытался изменить конфигурацию sendmail так, чтобы он использовал удаленный SMTP-сервер, но не уверен, что это возможно.
решение1
Я выбрал настройку сервера Postfix на том же веб-сервере, который отправлял почту только для localhost, и со следующей настройкой в main.cf для использования удаленного SMTP-сервера:
relayhost = [a.b.c.d]
Меня устраивает.
решение2
Насколько я знаю, это невозможно. Я бы либо:
- Используйте более полнофункциональный почтовый класс, такой какPEAR::Почта.
- Есливсепочта с этого компьютера должна быть смарт-ретранслирована, затем рассмотрите возможность настройкиССмтпкак ваш исполняемый файл sendmail.
решение3
msmtpможет использоваться как альтернатива sendmail, который просто перенаправляет трафик напрямую на внешний SMTP-сервер. Он довольно прост в настройке и работает очень хорошо.
решение4
PHP на Linux полагается на sendmail. Я бы рекомендовал использовать другую функцию mail из другой библиотеки, если вы действительно хотите это сделать. Есть рекомендации в следующем сообщении StackOverFlow:https://stackoverflow.com/questions/966907/specify-smtp-server-for-php-mail-in-freebsd