使用带有AWS EC2的php发送电子邮件

时间:2013-04-26 15:29:05

标签: php apache sendmail

我使用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,我也不知道为什么其他位置不起作用。

1 个答案:

答案 0 :(得分:0)

使用sendmail的绝对路径,当从脚本运行时,通常不会设置PATH。