Как отправить HTML-письмо с помощью mailgun?
После того, как мне не удалось найти решение моей проблемы в документации mailgun, я объясню, что я ищу.
Сегодня я использую PHPList для рассылки своего информационного бюллетеня (он отлично работает!), У меня есть HTML-страницы, которые я просто включаю в приложение PHPList, чтобы отправить его. (Я использую метод SMTP для отправки новостей). Интересно, могу ли я сделать то же самое с mailgun (наверняка могу, но как?), Можно ли просто указать путь к моим HTML-страницам, чтобы отправить его? (У меня нет интереса чтобы ввести мой html-код в скрипт, он должен быть в пути, иначе я не заинтересован в использовании mailgun).
Взгляните на мой php-код mailgun следующим образом:
$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 утверждает, что он легкий и отличный, это мотив, который я хочу изменить.
2 answers
Таким образом, я использовал внешний 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,
Добавление ссылки на документацию 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 <YOU@YOUR_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')
));