Как отправить 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')
));