web-dev-qa-db-ja.com

MailgunでHTMLメールを送信する方法は?

メールガンのドキュメントで私の問題の解決策を見つけられなかった後、私が探しているものを説明します。

今日、phpListを使用してニュースレターを送信しています(完璧に機能します!)。これを送信するために、phpListアプリケーションに含めるHTMLページがあります。 (私は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コード全体を含めることはできません。非常に広範囲にわたるためです。

しかし、メールガンは簡単で素晴らしいと主張し、それが私が変えたい動機です。

16
deepcell

この方法で外部の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,
38
israr

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')
));
3
Robin Dowling