15

请看这段代码

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 

这段代码有什么问题。它不适用于 Amazon Linux 服务器

谢谢

4

6 回答 6

20

我对 ec2 的 php 邮件有同样的问题。

解决方案对我有用:

  1. 通过命令安装 sendmail:

     sudo apt-get install sendmail
    
  2. 通过执行以下命令检查服务是否已启动

    service sendmail status
    

    注意:上述命令的输出应该是 -'Active: active (running)'

  3. 如果服务未运行,请通过以下命令启动服务

    service sendmail start
    
  4. 服务启动后,使用以下命令发送测试邮件:

    echo "This is test mail body" | mail -s "Test Mail Subject" "recipient@email.com"
    

用您的电子邮件 ID 替换电子邮件,看看您是否收到此电子邮件,如果是,那么您的邮件设置很好,现在您的 php 电子邮件应该可以正常工作了。

如果没有,检查错误的文件是 /var/spool/mail/。

于 2018-05-30T20:15:51.297 回答
19

在使用 Php 发送电子邮件时,我遇到了与您相同的问题mail()。安装发送邮件为我解决了这个问题。

sudo apt-get install sendmail
于 2016-04-06T09:01:08.103 回答
1

亚马逊服务器允许使用本地主机发送邮件功能。请取消注释 php.ini 中的邮件配置。

我已经这样做了并且工作正常。

于 2013-10-24T07:01:46.867 回答
1

你愿意使用其他邮件框架吗?如果是,您可以使用 phpmailer ...它对我来说很好。

这是他们网站上的链接。http://phpmailer.worxware.com/

于 2013-10-24T07:03:27.623 回答
1

显然,在支持解锁之前,无法从 EC2 发送 PHP。要解锁它,请访问: EC2 - 全新 PHP 安装 - 邮件不工作

否则,我只会引用@Charles 的回答:

这不会直接解决您的问题(编辑:我的意思是您现在已经编辑掉的错误消息),但 Amazon EC2 实例的邮件声誉确实参差不齐。您可能会遇到可交付性问题。

值得庆幸的是,亚马逊创建了简单电子邮件服务来配合 EC2,为 EC2 客户提供免费的服务级别。API 非常简单,并且有许多优秀的 PHP 邮件库的传输适配器,例如 SwiftMailer(传输)。

所以 - 不,你不能发送,但使用Simple Email Service,像SwiftMailer这样的库,或者我会添加像SendGrid这样的服务

*来源:关于 php 邮件和 EC2 的另一个 SO 问题

MEANWHILE:我注册了简单电子邮件服务,这在某种程度上是 SendGrid 正在做的事情。这很简单。首先,您请求 smtp 用户和密码。然后,您要么确认一封用于测试的电子邮件,要么请求生产访问权限[我不需要,所以我没有完成流程]。还有一个警告 -ssl://在主机面前使用,否则会给您带来SMTP error: 530 5.7.0 Must issue a STARTTLS command first.错误。发生这种情况时,我正在使用 CakePHP 和 EC2。

于 2014-07-30T21:08:38.013 回答
-2

只需按照以下说明进行操作(针对 ubuntu 10x EC2 测试)

sudo apt-get install php-pear   // Install php-pear if not installed 

sudo pear install mail  

sudo pear install Net_SMTP

sudo pear install Auth_SASL

sudo pear install mail_mime

sudo apt-get install postfix

sudo service apache2 restart

享受!

于 2015-02-06T08:50:01.650 回答