Как отправить 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 утверждает, что он легкий и отличный, это мотив, который я хочу изменить.

 16
Author: B4NZ41, 2014-02-14

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,
 33
Author: israr, 2015-06-09 09:29:11

Добавление ссылки на документацию 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')
));
 2
Author: Robin Dowling, 2016-12-01 10:03:01