如何使用Mailgun API设置这些电子邮件标题 - php

我正在使用curl和PHP与MailGun API通信。
我有两封电子邮件,我需要我的收件人才能接收带有以下标题的电子邮件。
您能否给我一个curl(或PHP的curl库)中的示例代码片段,以实现这些邮件标题?

-电子邮件1-

From: "My Name"

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

Content-Transfer-Encoding: 8bit

-电子邮件2-

MIME-Version: 1.0

From:my.domain.com <[email protected]>

Reply-To: my.domain.com <[email protected]>

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

Message-ID: <[email protected]>

参考方案

您可以在数组内添加任意数量的标题,只要它们以“ h:”为前缀即可

'h:Message-Id'=>  '[email protected]', //Your Message-ID

下面是有关如何实现此功能的一些较大解释:

<?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 = "[email protected]"; // YOUR FROM EMAIL
$mg_reply_to_email = "[email protected]"; // 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'      => '[email protected]',
                'to'        => '[email protected]',
                'h:Reply-To'=>  ' <' . $mg_reply_to_email . '>',
                'h:Message-Id'=>  '[email protected]', //Your Message-ID
                'subject'   => 'Hello',
                'html'      => 'Mailgun POW POW!'
            ));
$result = curl_exec($ch);
curl_close($ch);
$res = json_decode($result,TRUE);
print_r($res);

cURL-加载具有CloudFlare保护的网站 - php

我有一个网站,我想使用cURL加载。但是,我正在谈论的站点正在使用cloudflare保护。在cURL request =>上,它说“检查您的浏览器,您将在5秒钟内被重定向”,我被重定向到一个不存在的页面,因为我认为我没有通过某些保护测试。我一直在寻找答案很长时间,但我发现只有两个有用的链接:Link 1Link 2但是我仍然无法弄清楚。对我有帮助吗?…

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…

排序PHP迭代器 - php

有没有一种简单的方法可以在PHP中对迭代器进行排序(而不仅仅是将其全部拉入数组并进行排序)。我有一个具体的例子是DirectoryIterator,但是对所有迭代器都有一个通用的解决方案会很好。$dir = new DirectoryIterator('.'); foreach ($dir as $file) echo $file->…