如何使用Mailgun API设置这些电子邮件标头

I'm using curl with PHP to communicate with MailGun API. I have two emails which I need my recipients to receive the email with following headers. Could you give me an example code snippet in curl (or curl library for PHP) for achieve these mail headers?

-- Email 1 --

From: "My Name"

Content-type: text/plain;charset="iso-8859-1"

Content-Transfer-Encoding: 8bit

-- Email 2 --

MIME-Version: 1.0

From:my.domain.com <customerservice@mydomain.com>

Reply-To: my.domain.com <customerservice@mydomain.com>

Content-Type: multipart/alternative;boundary="=_730dc78ab764a3e997c2c451d9352d87"

Message-ID: <ndfmzn.jquf15@my.domain.com>

1个回答

You can add as many headers as you want inside the array as long as they're prefixed with "h:" look at the line

'h:Message-Id'=>  'ndfmzn.jquf15@my.domain.com', //Your Message-ID

Below some larger explanation of how you can implement this:

<?php
$mg_api = 'key-XXX'; //YOUR API KEY
$mg_version = 'api.mailgun.net/v2/'; //ROOT URL FOR MAILGUN
$mg_domain = "samples.mailgun.org"; //YOUR DOMAIN AS SPECIFIED IN THE CONTROL PANEL
$mg_from_email = "info@samples.com"; // YOUR FROM EMAIL
$mg_reply_to_email = "info@samples.org"; // YOUR REPLY-TO EMAIL (USUALLY MATCHES FROM EMAIL)

$mg_message_url = "https://".$mg_version.$mg_domain."/messages";


$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

curl_setopt ($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE, 0);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_USERPWD, 'api:' . $mg_api);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_URL, $mg_message_url);
curl_setopt($ch, CURLOPT_POSTFIELDS,                
        array(  'from'      => 'you@domain.com',
                'to'        => 'receiver@receiver.com',
                'h:Reply-To'=>  ' <' . $mg_reply_to_email . '>',
                'h:Message-Id'=>  'ndfmzn.jquf15@my.domain.com', //Your Message-ID
                'subject'   => 'Hello',
                'html'      => 'Mailgun POW POW!'
            ));
$result = curl_exec($ch);
curl_close($ch);
$res = json_decode($result,TRUE);
print_r($res);
dongzhi6905
dongzhi6905 我遇到了Mailgun API发送我的电子邮件HTML部分的问题,如下所示; 这导致我的“移动”电子邮件响应视图出现问题:Content-Type:text / html; charset =“ascii”Content-Transfer-Encoding:quoted-printable所以我可以使用以下Mailgun API将其设置为“utf-8”吗? 'h:charset'=>'utf-8',谢谢!
4 年多之前 回复
douzhangshao6369
douzhangshao6369 如何在mailgun API中设置标头?
接近 5 年之前 回复
dqeznd1697
dqeznd1697 我从来没有特别尝试过,我认为它会没问题,但值得测试一下:)
接近 6 年之前 回复
duanen19871021
duanen19871021 谢谢你的回答。 可以将MIME-Version标头传递给Mailgun吗?
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问