我创建了PHP应用程序并使用heroku进行部署。在应用程序中,我有联系表单将邮件发送到我的Gmail帐户。为实现这一点,我编写了以下PHP代码
<?php
$to = "to@gmail.com";
$subject = "This is subject";
$message = "This is simple text message.";
$header = "From:from@yantranet.com \r\n";
$retval = mail ($to,$subject,$message,$header);
if( $retval == true ){
echo "Message sent successfully...";
}else{
echo "Message could not be sent...";
}
?>
我的php脚本正在执行。但它不是发送邮件而是显示Message could not be sent
。任何人都可以帮助使用PHP实现联系表单吗?
答案 0 :(得分:5)
Heroku不允许发送电子邮件,您必须使用外部SMTP服务器。
“要从部署到Heroku的应用程序发送电子邮件,请使用外部SMTP服务。” https://devcenter.heroku.com/articles/smtp
如何发送电子邮件抛出SMTP在此处描述:Sending email with PHP from an SMTP server
答案 1 :(得分:1)
在没有附加功能的情况下通过heroku发送电子邮件并不容易。
我建议您查看Sendgrid Heroku Add-on Sendgrid是一个灵活的Web和SMTP API,加上一个简单的SMTP Relay设置,允许您决定哪种集成方法适合您的环境。
检查出来,它应该是问题的解决方案,因为它解决了我的问题。
<强>更新强>
对于初学者来说,尝试使用sendgrid,它可以直接使用。但请注意,Sendgrid只是人们可以使用的众多选项之一。您可以使用您选择的任何SMTP服务器发送,到目前为止,您拥有所需的凭据,如用户名,密码,主机,端口,驱动程序和/或加密。
PHPMailer提供您需要的功能。因此,只需将PHPMailer或任何类似的软件包与您的应用程序集成,并提供SMTP服务器提供的所需凭据。