请参阅此代码
<?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服务器上运行
由于
答案 0 :(得分:13)
我在使用Php&#39; UPDATE products
INNER JOIN
(SELECT products_id, SUM(attributes_stock) as qty
FROM products_attribute
GROUP BY products_id) T ON T.products_id = products.products_id
SET products.products_quantity = T.qty
WHERE products_model = '000011195001'
发送电子邮件时遇到了与您相同的问题。安装发送邮件为我解决了。
mail()
答案 1 :(得分:8)
对于php邮件,我遇到了与ec2相同的问题。
解决方案对我有用:
按命令安装sendmail:
sudo apt-get install sendmail
通过执行以下命令检查服务是否已启动
service sendmail status
注意:输出上述命令应该是 - 'Active: active (running)'
如果服务没有通过以下命令
运行,则启动该服务service sendmail start
服务启动后,使用以下命令发送测试邮件:
echo "This is test mail body" | mail -s "Test Mail Subject" "recipient@email.com"
用您的电子邮件ID替换电子邮件,看看您是否收到此电子邮件,如果是,那么您的邮件设置正常,现在您的php电子邮件应该正常工作。
如果没有,检查错误的文件是/ var / spool / mail /。
答案 2 :(得分:1)
亚马逊服务器允许使用localhost发送邮件功能。请取消注释php.ini中的邮件配置。
我已经这样做了并且工作正常。
答案 3 :(得分:1)
这是他们网站上的链接。 http://phpmailer.worxware.com/
答案 4 :(得分:1)
显然从EC2发送PHP是不可能的,直到它被支持解锁。解锁它访问: EC2 - Fresh PHP install - Mail not working
否则,我会引用@Charles回答:
这不会直接解决您的问题(编辑:我的意思是错误消息 你现在已经编辑过),但亚马逊EC2实例确实有 参差不齐的邮件声誉。你可能会有可传递性 的问题。
值得庆幸的是亚马逊创建了简单的电子邮件服务 EC2,为EC2客户提供免费服务。 API很漂亮 简单,有许多优秀的PHP邮件传输适配器 库,如SwiftMailer(传输)。
所以 - 不是你不能发送,而是使用Simple Email Service,像SwiftMailer这样的库,或者我会添加像SendGrid这样的服务
*来源:Another SO question on php mail & EC2
同时:
我注册了简单电子邮件服务,这是SendGrid正在做的事情。这很简单。首先,您请求smtp用户和密码。然后,您要么确认要测试的电子邮件,要么请求生产访问[我不需要,所以我没有经历过程]。还有一点需要注意 - 在主机前使用ssl://
,否则会出现SMTP error: 530 5.7.0 Must issue a STARTTLS command first.
错误。发生这种情况时,我正在使用CakePHP和EC2。
答案 5 :(得分:-1)
请按照以下说明(针对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
享受!