Как отправить HTML-письмо с mailgun?

после того, как не удалось найти решение для моей проблемы в документации mailgun, я объясню, что я ищу.

Сегодня я использую phpList для отправки своего информационного бюллетеня (он отлично работает!), У меня есть HTML-страницы, которые я просто включаю в приложение phpList, чтобы отправить его. (Я использую метод SMTP для отправки новостей). Интересно, могу ли я сделать то же самое с mailgun (наверняка может, но как?), Можно ли просто указать путь к моим HTML-страницам, чтобы отправить его? (Мне неинтересно набирать код html в скрипте, он должен быть на пути, иначе я не заинтересован в использовании mailgun).

Взгляните на мой почтовый PHP-код следующим образом:

$result = $mgClient->sendMessage("$domain",
           array('from'    => 'My Business Name <[email protected]>',
                 'to'      => '[email protected], [email protected], [email protected]',
                 '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' => '{"[email protected]": {"first":"Name-1", "id":1}, "[email protected]": {"first":"Name-2", "id": 2}}'), 
           array('inline' => 'Pad-Thai-1.jpg'));

У меня есть элемент массива с именем 'html', я хотел бы указать путь к моей HTML-странице (если это невозможно, где я могу ее поместить?). Я просто не могу включить весь код HTML в этот элемент массива html, потому что он настолько обширен.

Но mailgun претендует на то, чтобы быть легким и замечательным, это мотив, который я хочу изменить.

Ответ 1

Таким образом, я использовал внешний шаблон html. Это может помочь вам.

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

а потом:

$result = $mgClient->sendMessage("$domain",
       array('from'    => 'My Business Name <[email protected]>',
             'to'      => '[email protected], [email protected], [email protected]',
             'subject' => 'Issue Feb 2014',
             'text'    => 'Your mail do not support HTML',
             'html'    => $html,
             'recipient-variables' => '{"[email protected]": {"first":"Name-1", "id":1}, "[email protected]": {"first":"Name-2", "id": 2}}'), 
       array('inline' => 'Pad-Thai-1.jpg'));

Проверьте эту строку:

'html'    => $html,

Ответ 2

Добавление ссылки на документацию Mailgun. Это помогло мне при создании сообщений HTML и MIME. https://documentation.mailgun.com/api-sending.html#examples

Согласно документации:

# Include the Autoloader (see "Libraries" for install instructions)
require 'vendor/autoload.php';
use Mailgun\Mailgun;

# Instantiate the client.
$mgClient = new Mailgun('YOUR_API_KEY');
$domain = "YOUR_DOMAIN_NAME";

# Make the call to the client.
$result = $mgClient->sendMessage($domain, array(
    'from'    => 'Excited User <[email protected]_DOMAIN_NAME>',
    'to'      => '[email protected]',
    'cc'      => '[email protected]',
    'bcc'     => '[email protected]',
    'subject' => 'Hello',
    'text'    => 'Testing some Mailgun awesomness!',
    'html'    => '<html>HTML version of the body</html>'
), array(
    'attachment' => array('/path/to/file.txt', '/path/to/file.txt')
));