如何让PHP mail()工作?需要帮助配置MTA

Str*_*rry 8 php email debian

更新:我解决了.记录以下所有内容.

我尝试了很多东西,但它不会起作用.

我不介意使用,postfix,exim4或sendmail.我只需要一步一步的指导和解释我在做什么.我也在使用Google Apps收发电子邮件.

编辑:

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
Run Code Online (Sandbox Code Playgroud)

这是什么意思?


更新编辑:通过修改php.ini中的sendmail_path修复 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);

?>
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

更新到edit3:通过以下链接修复此问题:http ://ubuntuforums.org/showthread.php?t = 666018 运行此:

sudo mkfifo /var/spool/postfix/public/pickup
sudo /etc/init.d/postfix restart
Run Code Online (Sandbox Code Playgroud)

之后,您将收到此错误:

 postfix/master[13902]: fatal: bind 0.0.0.0 port 25: Address already in use
Run Code Online (Sandbox Code Playgroud)

然后,您必须检查您的进程并终止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
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

更新到edit4:我跑了,dpkg-reconfigure postfix然后选中了Internet Site.

Con*_*nex 5

你正确安装了postfix吗?如果是:服务后缀重启

纳米/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/

按照客户安装说明...


mpd*_*dio 2

什么不起作用?服务器日志显示什么(PHP 和邮件)?您需要确定问题是出在 PHP 还是您的 MTA 上。

恕我直言,设置只发送后缀,然后使用 PEAR 邮件库可能是最好的选择。