Как настроить php.ini с удаленным SMTP?

11

Как настроить PHP для отправки почты с помощью mail () через удаленный SMTP-сервер?

Я пытался сделать это с помощью php.ini, но кажется, что вы можете сделать это только под Windows32, и я хочу сделать это на моем Unix-сервере.

Также я попытался изменить конфигурацию для sendmail, чтобы он использовал удаленный SMTP-сервер, но я не уверен, что это возможно.

Brayn
источник

Ответы:

9

Мой выбор - настроить сервер postfix на том же веб-сервере, который отправлял почту только для localhost, и использовать этот параметр в main.cf для использования удаленного сервера SMTP:

relayhost = [a.b.c.d]

Меня устраивает.

hdanniel
источник
HD, не могли бы вы дать более подробную информацию или указать мне ресурс, который объясняет это. У меня есть аккаунт Google (а также Google Apps), и я считаю, что SMTP требует аутентификации. Google использует TLS для SMTP через порт 587 (а не 25). Где мне указать всю эту информацию?
Ури
Это лучший ответ на самом деле, потому что вы разгрузите SMTP в постфикс. Если вы отправляете почту через ваше приложение, а удаленный сервер не работает, вы блокируете запрос. Лучший вариант - это передать почтовое сообщение работнику в очереди, чтобы выполнить эту работу, но это хороший первый шаг в правильном направлении.
Майк
3

Это не возможно, AFAIK. Я бы либо:

  1. Используйте полнофункциональный почтовый класс, такой как PEAR :: Mail .
  2. Если вся почта с этого компьютера должна быть ретранслирована с умом, рассмотрите возможность настройки SSMTP в качестве двоичного файла sendmail.
Дэн Карли
источник
2

msmtp может использоваться как альтернатива sendmail, которая просто перенаправляет трафик непосредственно на внешний SMTP-сервер. Это довольно легко настроить и работает очень хорошо.

Джонатан Приор
источник
msmtp спас мне жизнь :)
w00t
1

Вы можете использовать встроенные в PHP инструменты IMAP или очень удобный PHPMailer

Боюсь, лучше ответить на переполнение стека ...

Энди
источник
2
+1 за ответ, я не согласен с последующим комментарием, хотя. Обычно системные администраторы получают «забавную часть» настройки SMTP, поскольку не все программисты имеют представление о том, что это такое. Они просто хотят, чтобы электронная почта работала. Конечно, я обобщаю, каламбур не предназначен.
Андриоид
1

PHP на Linux опирается на sendmail. Я бы порекомендовал использовать другую почтовую функцию из другой библиотеки, если вы действительно хотите это сделать. Есть следующие рекомендации для следующей публикации StackOverFlow: /programming/966907/specify-smtp-server-for-php-mail-in-freebsd

Кайл Брандт
источник
0

Внутренняя функция mail () может использовать SMTP только на компьютере с Windows, как вы сказали.

Единственный вариант - использование PHPMailer. Вы также можете попробовать пакет PEAR PHP: http://pear.php.net/package/Mail

Мохаммед Насер
источник
-1

https://docs.nexcess.net/article/how-to-configure-a-remote-mail-server.html В главном меню SiteWorx выберите Администрирование> Параметры почты> Удаленная установка. - Подробнее см .: https://docs.nexcess.net/article/how-to-configure-a-remote-mail-server.html#sthash.JeroEsDU.dpuf.

Вишал Панчал
источник
Добро пожаловать в сбой сервера! Хотя это теоретически может дать ответ на вопрос, пожалуйста, предоставьте контекст вокруг ссылок, чтобы другие имели некоторое представление о том, что это такое и почему оно есть. Если возможно, суммируйте или процитируйте наиболее релевантную часть важной ссылки, если целевой сайт недоступен или постоянно отключен.
HBruijn