我使用AWS EC2服务器(ubuntu实例),我想通过php代码发送电子邮件
我安装了sendmail并将.mc文件修改为打击
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
我删除了Addr并重新启动了sendmail服务
但是,我无法发送电子邮件。
我在控制台上测试了sendmail(sendmail to@mail.com from@mail.com)
和PHP文件,如php sendmailtest.php。
他们都工作!
但是,当我尝试使用浏览器时,它仍然无效。 (如http://test.com/sendmail.php)
这是我的apache日志
sh: 1: sendmail: not found
[Thu Apr 25 03:40:53 2013] [error] [client xxx.xxx.xxx.xxx] xxx@gmail.com
[Thu Apr 25 03:40:54 2013] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/favicon.ico
更新
这是我发送电子邮件的测试代码
$mailto="xxxxxxxx@gmail.com";
$subject="mail test";
$content="test";
$result=mail($mailto, $subject, $content);
if($result){
echo "mail success";
}else {
error_log($mailto, 0);
echo "mail fail";
}
提前致谢,
解决了这个问题。
我应该输入/ usr / sbin / sendmail
即使存在sendmail,我也不知道为什么其他位置不起作用。
答案 0 :(得分:0)
使用sendmail的绝对路径,当从脚本运行时,通常不会设置PATH。