如何使用PHP在heroku上发送电子邮件?

时间:2013-09-10 09:52:43

标签: php heroku

我创建了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实现联系表单吗?

2 个答案:

答案 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服务器提供的所需凭据。