如何使用邮件枪发送HTML电子邮件?

2022-08-30 20:43:43

在邮件枪文档中未能找到我的问题的解决方案后,我将解释我正在寻找的内容。

今天,我正在使用phpList发送我的时事通讯(它工作完美!),我有HTML页面,我只是包含在phpList应用程序中以将其发送出去。(我使用SMTP方法发送新闻)。我想知道我是否可以用mailgun做同样的事情(当然可以,但如何?),是否可以只包含我的HTML页面的路径来发送它?(我没有兴趣在脚本中输入我的html代码,它必须在路径中,否则我没有兴趣使用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声称自己很容易和伟大,这就是我想改变的动机。


答案 1

我以这种方式使用了外部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,

答案 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')
));

推荐