19

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

今日、私は phpList を使用してニュースレターを送信しています (完璧に動作します!)。送信するために phpList アプリケーションに含める HTML ページがあります。(私は SMTP メソッドを使用してニュースを送信しています)。mailgun で同じことができるのだろうか (確かにできますが、どうすればよいでしょうか?)、HTML ページのパスを含めて送信することは可能ですか? (スクリプトにhtmlコードを入力することに興味はありません。パスにある必要があります。それ以外の場合は、mailgunを使用することに興味がありません)。

次のように私のmailgun phpコードを見てください:

$result = $mgClient->sendMessage("$domain",
           array('from'    => 'My Business Name <me@samples.mailgun.org>',
                 'to'      => 'name-1@gmail.com, name-3@gmail.com, name-3@gmail.com',
                 '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' => '{"name-1@gmail.com": {"first":"Name-1", "id":1}, "name-2@gmail.com": {"first":"Name-2", "id": 2}}'), 
           array('inline' => 'Pad-Thai-1.jpg'));

という名前の配列要素が'html'あり、HTML ページのパスを含めたいです (それができない場合は、どこに配置できますか?)。HTML コード全体をこの html 配列要素に含めることはできません。これは非常に広範囲に及ぶためです。

しかし、mailgun は簡単で優れていると主張しています。それが私が変えたい動機です。

4

2 に答える 2

43

このように外部htmlテンプレートを使用しました。それはあなたを助けるかもしれません。

$html  = file_get_contents('my_template.html'); // this will retrieve the html document

その後:

$result = $mgClient->sendMessage("$domain",
       array('from'    => 'My Business Name <me@samples.mailgun.org>',
             'to'      => 'name-1@gmail.com, name-3@gmail.com, name-3@gmail.com',
             'subject' => 'Issue Feb 2014',
             'text'    => 'Your mail do not support HTML',
             'html'    => $html,
             'recipient-variables' => '{"name-1@gmail.com": {"first":"Name-1", "id":1}, "name-2@gmail.com": {"first":"Name-2", "id": 2}}'), 
       array('inline' => 'Pad-Thai-1.jpg'));

この行を確認してください:

'html'    => $html,
于 2014-07-22T01:43:42.583 に答える
4

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'      => 'foo@example.com',
    'cc'      => 'baz@example.com',
    'bcc'     => 'bar@example.com',
    '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')
));
于 2016-12-01T10:03:01.777 に答える