简单的 PHP 邮件功能无法在 Amazon 服务器 EC2 上运行 [已关闭]

问题描述 投票:0回答:6

我有一个应该发送电子邮件的 PHP 脚本。该脚本在我的本地计算机上运行良好,但当我在 Amazon Linux 服务器上运行它时,它不会发送电子邮件。

$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
php amazon-ec2
6个回答
21
投票

我对 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" "[email protected]"
    

用您的电子邮件 ID 替换 email 并查看您是否收到这封电子邮件,如果是,则您的邮件设置正常,现在您的 php 电子邮件应该可以正常工作。

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


20
投票

我在使用 Php 发送电子邮件时遇到了与您相同的问题

mail()
。安装发送邮件为我解决了这个问题。

sudo apt-get install sendmail

1
投票

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

我已经做到了这一点并且工作正常。


1
投票

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

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


1
投票

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

否则我就引用@Charles的回答:

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

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

所以 - 不,你不能发送,但使用简单电子邮件服务,像SwiftMailer这样的库,或者我会添加像SendGrid

这样的服务

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

同时: 我注册了 Simple Email Service,这在某种程度上就是 SendGrid 正在做的事情。事情非常简单。首先您请求 smtp 用户和密码。然后,您要么确认一封电子邮件进行测试,要么请求生产访问权限[我不需要,所以我没有完成流程]。还有一点需要注意 - 在主持人面前使用

ssl://
,否则会给你
SMTP error: 530 5.7.0 Must issue a STARTTLS command first.
错误。发生这种情况时我正在使用 CakePHP 和 EC2。


-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

享受吧!

© www.soinside.com 2019 - 2024. All rights reserved.