Как я могу заставить PHP mail () работать?Нужна помощь в настройке MTA - PullRequest
8 голосов
/ 03 ноября 2010

Обновление: я решил это.Все ниже документировано.

Я пробовал очень много вещей, но это просто не сработало бы.

Я не возражал бы против использования postfix, exim4 или sendmail.Мне просто нужно пошаговое руководство и объяснение того, что я делаю.Я также использую Службы Google для электронной почты.

Изменить:

mail.log

Nov  3 01:14:02 mugbear postfix[16615]: error: to submit mail, use the Postfix sendmail command
Nov  3 01:14:02 mugbear postfix[16615]: fatal: the postfix command is reserved for the superuser

Что это значит?


Обновление для редактирования: исправлено исправление sendmail_path в php.ini с помощью sendmail_path = /usr/sbin/sendmail -t -i

Edit2: PHP - просто взято из документации.К вашему сведению, я удалил свою электронную почту.

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('removed@gmail.com', 'My Subject', $message);

?>

Edit3: Другая ошибка:

Nov  3 07:22:29 mugbear postfix/postdrop[17131]: warning: unable to look up public/pickup: No such file or directory
Nov  3 07:22:29 mugbear postfix/postdrop[17133]: warning: unable to look up public/pickup: No such file or directory

Обновление для редактирования3: Исправлено это с помощью следующихссылка: http://ubuntuforums.org/showthread.php?t=666018 Запустите это:

sudo mkfifo /var/spool/postfix/public/pickup
sudo /etc/init.d/postfix restart

После этого вы получите эту ошибку:

 postfix/master[13902]: fatal: bind 0.0.0.0 port 25: Address already in use

Тогда вам придется проверить ваши процессы и убить sendmailпроцессы, например:

root@server:/etc/postfix# ps aux | grep mail
root     23554  0.0  0.0   8232  1900 ?        Ss   10:17   0:00 sendmail: MTA: accepting connections          
root     27308  0.0  0.0   3004   764 pts/0    S+   10:30   0:00 grep mail
root@server:/etc/postfix# kill 23554

Edit4: Что это значит?

Nov  3 07:34:51 mugbear postfix/pickup[17309]: 6602F1C151: uid=33 from=<www-data>
Nov  3 07:34:51 mugbear postfix/cleanup[17311]: 6602F1C151: message-id=<20101103073451.6602F1C151@mugbear.xen.prgmr.com>
Nov  3 07:34:51 mugbear postfix/qmgr[17310]: 6602F1C151: from=<www-data@mugbear.com>, size=397, nrcpt=1 (queue active)
Nov  3 07:34:51 mugbear postfix/error[17321]: 6602F1C151: to=<mugbear@gmail.com>, relay=none, delay=0.03, delays=0.02/0/0/0.01, dsn=4.3.5, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=xen.prgmr.com type=A: Host found but no data record of requested type)

Обновление для редактирования4: Я побежал, dpkg-reconfigure postfix ивыбрано Internet Site.

Ответы [ 2 ]

5 голосов
/ 03 ноября 2010

правильно ли вы установили postfix? Если да : перезапуск службы postfix

nano /etc/php.ini

Найти sendmail_path, изменить строку на sendmail_path = /usr/sbin/sendmail.postfix -t -i

Здесь также приведены полные инструкции по установке сервера / клиента для php-клиента http://setahost.com/installing-postfix-as-a-default-mail-sending-program-with-php/

следуйте инструкциям по установке клиента ...

2 голосов
/ 03 ноября 2010

Что не работает? Что показывают журналы сервера (как для PHP, так и для почты)? Вам нужно выяснить, связана ли проблема с PHP или вашим MTA.

ИМХО, вероятно, лучше всего настроить postfix только для отправки и затем использовать почтовую библиотеку PEAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...