How can I get PHP mail() to work? Need help configuring a MTA

∥☆過路亽.° 提交于 2020-01-03 08:13:29

问题


Update: I solved it. Documented everything below.

I tried so many things, but it just would not work.

I wouldn't mind using, postfix, exim4, or sendmail. I just need a step by step guide and explanation of what am I doing. I am also using Google Apps for e-mail.

Edit:

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

What does this mean?


Update to edit: Fixed by correcting sendmail_path in php.ini with sendmail_path = /usr/sbin/sendmail -t -i

Edit2: PHP - Just grabbed from documentation. FYI, I removed my e-mail.

<?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: Another error:

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

Update to edit3: Fixed this with the following link: http://ubuntuforums.org/showthread.php?t=666018 Run this:

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

After that, you'll get this error:

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

Then you will have to check your processes and kill sendmail processes, for example:

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: What does this mean?

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)

Update to edit4: I ran, dpkg-reconfigure postfix and selected Internet Site.


回答1:


did you properly installed postfix ? If yes : service postfix restart

nano /etc/php.ini

Find sendmail_path , change the line to sendmail_path = /usr/sbin/sendmail.postfix -t -i

Here is the complete server / client installation instructions for php client also http://setahost.com/installing-postfix-as-a-default-mail-sending-program-with-php/

follow client installation instructions ...




回答2:


What isn't working? What do server logs show (both for PHP and mail)? You need to figure out if the problem is with PHP or your MTA.

IMHO, setting up send-only postfix and then using the PEAR Mail library is probably the best bet.



来源:https://stackoverflow.com/questions/4083297/how-can-i-get-php-mail-to-work-need-help-configuring-a-mta

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!