B4NZ41 B4NZ41 - 3 months ago 20
PHP Question

How to send out HTML email with mailgun?

after failed to find a solution for my problem in the mailgun documentation, I will explain what I'm looking for.

Today I'm using phpList to send out my newsletter (It works perfect!), I have HTML pages that I just include in the phpList application to send it out. (I'm using SMTP method to send news out). I wonder if I can do the same with mailgun (for sure can, but how?), is it possible to just include the path of my HTML pages to send it out? (I do not have interest to type my html code in the script, it must be in the path otherwise I have no interest in use mailgun).

Take a look to my mailgun php code as follow:

$result = $mgClient->sendMessage("$domain",
array('from' => 'My Business Name <me@samples.mailgun.org>',
'to' => 'name-1@gmail.com, name-3@gmail.com, name-3@gmail.com',
'subject' => 'Issue Feb 2014',
'text' => 'Your mail do not support HTML',
'html' => '<html>Inline image: <img src="cid:Pad-Thai-1.jpg"></html>',
'recipient-variables' => '{"name-1@gmail.com": {"first":"Name-1", "id":1}, "name-2@gmail.com": {"first":"Name-2", "id": 2}}'),
array('inline' => 'Pad-Thai-1.jpg'));


I have the array element named
'html'
, I would like to include the path of my HTML page (if not possible, where can I put it?). I just can not include my whole HTML code in this html array element, cause it is so extensive.

But mailgun claim to be easy and great, that is the motive I want to change.

Answer

I have used external html template in this way. It may be help you.

$html  = file_get_contents('my_template.html'); // this will retrieve the html document

and then:

$result = $mgClient->sendMessage("$domain",
       array('from'    => 'My Business Name <me@samples.mailgun.org>',
             'to'      => 'name-1@gmail.com, name-3@gmail.com, name-3@gmail.com',
             'subject' => 'Issue Feb 2014',
             'text'    => 'Your mail do not support HTML',
             'html'    => $html,
             'recipient-variables' => '{"name-1@gmail.com": {"first":"Name-1", "id":1}, "name-2@gmail.com": {"first":"Name-2", "id": 2}}'), 
       array('inline' => 'Pad-Thai-1.jpg'));

Check this line:

'html'    => $html,
Comments