0

我使用 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 另一个位置也不起作用。

4

1 回答 1

0

使用绝对路径来发送邮件,当从脚本运行时,您的 PATH 通常不会设置。

于 2013-04-26T18:11:48.197 回答