如何使用php和mailchimp发送电子邮件?

时间:2017-12-20 07:09:39

标签: php email mailchimp

目前,我使用mail()函数(这是一个php函数)向我的网站用户发送电子邮件。但遗憾的是,他们进入垃圾邮件文件夹。经过一番研究,我发现我必须使用mailchimp发送电子邮件。所以我的第一个问题是:这是真的吗? (使用mailchimp发送电子邮件以避免垃圾邮件)

简而言之,我尝试做的只是向我的网站用户发送电子邮件作为注册表激活。

这是我的代码:

<?php

$apiKey = "API_KEY";
$campaignId = "CAMPAIGN_ID";

$memberId = md5(strtolower("stackoverflow0916@gmail.com"));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://'. $dataCenter . '.api.mailchimp.com/3.0/campaigns/' . $campaignId .'/actions/test';

$jsonEmail = '{"test_emails":["the mail you want to send thing sat"],"send_type":"html"}';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'apikey:'.$apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonEmail);

$result = curl_exec($ch);
curl_close($ch);

var_dump($result);

?>

它返回:

  

string(234)&#34; {&#34; type&#34;:&#34; http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/&#34;,&#34; title&#34;:&#34; Resource Not找到&#34;,&#34;状态&#34;:404,&#34;详细信息&#34;:&#34;找不到请求的资源。&#34;,&#34;实例&#34; :&#34; 4541f02b-ea08-44da-a1d0-0f45f5457399&#34;}&#34;

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为您不了解如何使用MailChimp。上面的代码使用MailChimp上的端点,该端点用于测试活动,即向一个或两个人发送测试电子邮件,以确保在发送活动时它按预期工作。

一般来说,您的想法是创建一个应该一次发送给很多人的广告系列。这方面有各种变化,包括自动化和交易电子邮件(MailChimp现在已将其交易电子邮件应用程序Mandrill合并到主应用程序中)。

php mail()通常用于发送个人电子邮件,即交易电子邮件,而非群发电子邮件。

如果您想通过MailChimp发送交易电子邮件,请查看该应用程序的该区域(或查看Mandrill)。如果您要发送广告系列类型的电子邮件,则需要设置电子邮件列表并使用POST / campaign / {campaign_id} / actions / send,而不是仅用于测试电子邮件广告系列的测试。

至于你的具体例子......

我不确定你在这里给出的语法:

curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

我会使用以下内容:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

除此之外,当我使用自己的API密钥和广告系列时,您的示例适用于我。您可能想要检查广告系列ID是否有效,就好像它不是那样肯定会给出您得到的错误响应。