Настройка сервера Ubuntu для отправки почты ()


40

Я пытался много искать, но не смог найти, как на самом деле настроить сервер Ubuntu, чтобы я мог отправлять почту через php с помощью функции mail () в php.

У меня на сервере установлены apache2, mysql и php5.

Спасибо.

Ответы:


45

Я также согласен с тем, что не хватает учебных пособий для людей, которым просто нужен сценарий для отправки, например, сообщения об ошибках, и не нужен полноценный почтовый сервер.

Во-первых, если postfix еще не установлен, сделайте:

sudo apt-get install postfix

Это подсказывает пару вопросов. Для первого я выбрал «Интернет-сайт»; для машины за брандмауэром я мог бы вместо этого выбрать smarthost. Для второго вопроса по умолчанию используется имя машины; Я добавил доменное имя, которым я управляю (чтобы я мог установить DNS для него позже, если потребуется).

На этом этапе вы сможете использовать «почту» из командной строки для отправки теста. (Обычно я сначала следую инструкциям на http://ubuntuforums.org/showthread.php?t=38429 , в противном случае мне нужно использовать -fфлаг для /usr/bin/sendmail. Мне также нравится создавать /etc/aliasesзаписи для root и моего обычного пользователя, а затем запускать newaliases)

Затем в /etc/php5/conf.d создайте файл (например, mailconfig.ini) со следующим содержимым:

sendmail_from = "me@example.com"
sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"

Измените me@example.com на свой адрес электронной почты. Они означают, что вся электронная почта будет выглядеть так, как будто она отправлена ​​вами, что может помочь предотвратить ее отклонение. Этого достаточно для отправки сообщений об ошибках разработчику.

(Приведенные выше инструкции проверены на Ubuntu 10.04, 11.04, 11.10, 12.04)

PS Как указал раззед в комментариях, mailне всегда есть (например, в Ubuntu 11.10 он отсутствует). На самом деле это не влияет на приведенные выше инструкции, вам нужен только mailтест, и вы также можете использовать его sendmailдля этого. Но mailтакже полезен для чтения электронной почты, поэтому его обычно стоит установить с помощью: apt-get install mailutils(от имени root).


1
Благодарность! Это сработало отлично. Проверено на Ubuntu 12.04 LTS x64.
Трент Скотт

Это решает поиск с использованием NGINX тоже! И PHP5-FPM
TheBlackBenzKid

1
Обратите внимание, что на моем хосте mailутилита командной строки не устанавливается при чистой установке Ubuntu, а установка PostFix не устанавливает ее. Попробуйте sudo apt-get install mailutilsполучить mailкоманду, или используйте альтернативы, такие как Mutt, илиssmtp
razzed

Мне потребовались недели, чтобы понять, что вещи, которые sendmail_pathдолжны быть в наличии , должны "работать правильно, например,sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"
Sliq

1
В заключение! Прямое и простое решение. Работает на Ubuntu 14.04.
Knyri

2

Вам нужно будет настроить сервер Ubuntu для возможности отправки почты ... Например, вы можете установить и настроить postfix.

В документации по Ubuntu есть хорошая страница по адресу https://help.ubuntu.com/community/MailServer.


любой учебник вы можете связать меня?
Shishant

добавил ссылку на учебник
Доминик

1

Либо выполните болезненный процесс настройки почтового сервера непосредственно на вашем сервере (postfix и т. Д.), Либо используйте библиотеку, которая позволит вам напрямую подключаться к серверу smtp.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.