问题 如何制作一个简单的PHP应用程序从heroku雪松堆栈发送电子邮件?


我有一个非常简单的php网站,它有一个联系表单,使用php mail()函数发送电子邮件。我如何在heroku上托管这个?我应该使用哪个附加组件,如何设置它与PHP一起使用?


2948
2017-10-24 01:25


起源



答案:


以下是我为解决同样问题所做的工作:

1.您需要使用自定义buildpack来安装pear packages mail和Net_SMTP。您可以通过运行以下命令来使用我创建的那个:

heroku config:add BUILDPACK_URL=https://github.com/antonyevans/heroku-buildpack-php.git

关键的变化是增加了线条:

php/bin/pear install Mail
php/bin/pear install Net_SMTP

进入bin /编译。

2.然后,您需要告诉您的应用程序加载邮件包:

require_once 'Mail.php';

3.最后heroku阻止邮件端口,因此您需要配置为使用外部邮件服务器。例如,如果您添加了SendGrid插件('heroku addons:add sendgrid:starter'),那么您可以使用以下内容:

$wgSMTP = array(
    'host' => 'tls://smtp.sendgrid.net',
    'IDHost' => 'heroku.com',
    'port' => 587,
    'username' => getenv("SENDGRID_USERNAME"), 
    'password' => getenv("SENDGRID_PASSWORD"),
    'auth' => true
 );

10
2017-11-29 23:22



TechnoTony的回答是正确的。但他发布的buildpack已经过时了。我按照他的建议修改了当前的建议。我把它用于 https://github.com/blindstuff/heroku-buildpack-php.git - blindstuff


答案:


以下是我为解决同样问题所做的工作:

1.您需要使用自定义buildpack来安装pear packages mail和Net_SMTP。您可以通过运行以下命令来使用我创建的那个:

heroku config:add BUILDPACK_URL=https://github.com/antonyevans/heroku-buildpack-php.git

关键的变化是增加了线条:

php/bin/pear install Mail
php/bin/pear install Net_SMTP

进入bin /编译。

2.然后,您需要告诉您的应用程序加载邮件包:

require_once 'Mail.php';

3.最后heroku阻止邮件端口,因此您需要配置为使用外部邮件服务器。例如,如果您添加了SendGrid插件('heroku addons:add sendgrid:starter'),那么您可以使用以下内容:

$wgSMTP = array(
    'host' => 'tls://smtp.sendgrid.net',
    'IDHost' => 'heroku.com',
    'port' => 587,
    'username' => getenv("SENDGRID_USERNAME"), 
    'password' => getenv("SENDGRID_PASSWORD"),
    'auth' => true
 );

10
2017-11-29 23:22



TechnoTony的回答是正确的。但他发布的buildpack已经过时了。我按照他的建议修改了当前的建议。我把它用于 https://github.com/blindstuff/heroku-buildpack-php.git - blindstuff