2014-02-14 2 views
13

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

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

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

+0

Действительно сложены с mailgun! Боль в заднице API! – B4NZ41

ответ

29

Я использовал внешний шаблон 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

Я сделал то же самое, что и вы, и теперь отлично работает! $ issue = file_get_contents ('http: //xxxx.html'); $ batchMsg-> setHtmlBody ($ issue); Я приму ваш ответ как правильно! Благодарю. – B4NZ41

+1

Как это сделать с помощью JavaScript? – Anirudh

+0

Вы можете получить это, отправив запрос ajax. – israr

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') 
)); 
Смежные вопросы