我一直在寻找有关如何使用 Mailgun API 和标准 PHP cURL -而不是在电子邮件中发送嵌入式图像的线索。 Mailgun SDK 并没有运气,所以我不得不提出这个问题。
到目前为止,这是我的代码:
$url = 'https://api:**my-key**@api.eu.mailgun.net/v3/**my-domain.com**/messages';
$from = 'Admin < admin@my-domain.com >';
$to = 'Excite User < user@somewhere.com >';
$subject= 'Excite Stuff In Here';
$body = '<html>
<img src="cid:logo_sml.png">
<p>Testing Mailgun API with inline images</p>
</html>';
$text = strip_tags( nl2br($body) );
$tag = 'Test';
$inline = ['inline' => realpath('../includes/images/logo_sml.png')];
// parameters of message
$params = [
'from' => $from,
'to' => $to,
'subject' => $subject,
'text' => $text,
'html' => $body,
'inline' => json_encode($inline),
'o:tag' => $tag
];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_FAILONERROR, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params );
$data_results = curl_exec($curl);
$response = json_decode($data_results);
curl_close($curl);
正在发送的电子邮件没有任何错误消息,但是没有任何图像(内联或附件形式)。我要去哪里错了?
答案 0 :(得分:0)
我在Mailgun支持人员面前提出了要求,Marco给出了我认为应该分享的解决方案:
$inline = curl_file_create(realpath('../includes/images/logo_sml.png'));
...
'inline' => $inline,
curl_file_create-创建一个CURL文件对象以附加图像。其余代码保持不变。