Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to make a simple php app send emails from heroku cedar stack?

Tags:

php

heroku

cedar

I have a very simple php website, that has a contact form that uses the php mail() function to send emails. How can I host this on heroku? Which add-on should I use, and how do I set it to work with php?

like image 390
Diego Gomes Avatar asked Oct 24 '12 01:10

Diego Gomes


1 Answers

Here's what I did to solve this same problem:

1.You need to use a custom buildpack which installs the pear packages mail and Net_SMTP. You can use the one I created by running the following command:

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

The key changes are the addition of the lines:

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

Into bin/compile.

2.Then you need to tell your application to load the mail package:

require_once 'Mail.php';

3.Finally heroku blocks the mail port so you need to configure to use an external mail server. For example if you have added the SendGrid addon ('heroku addons:add sendgrid:starter') then you could use the following:

$wgSMTP = array(
    'host' => 'tls://smtp.sendgrid.net',
    'IDHost' => 'heroku.com',
    'port' => 587,
    'username' => getenv("SENDGRID_USERNAME"), 
    'password' => getenv("SENDGRID_PASSWORD"),
    'auth' => true
 );
like image 68
TechnoTony Avatar answered Sep 20 '22 11:09

TechnoTony