在mailgun文档中找不到我的问题的解决方案之后,我将解释我正在寻找的内容。
今天我正在使用phpList发送我的时事通讯(它工作得很完美!),我有HTML页面,我只是包含在phpList应用程序中发送它。 (我正在使用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声称自己很容易也很棒,这就是我想改变的动机。
答案 0 :(得分:35)
我以这种方式使用了外部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,
答案 1 :(得分: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 <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')
));