Php 如何通过MailChimp 3.0 api发送电子邮件?
我试图通过php中的mailchimp api 3.0版发送电子邮件,但我运气不好。这是我的代码:Php 如何通过MailChimp 3.0 api发送电子邮件?,php,email,send,mailchimp,Php,Email,Send,Mailchimp,我试图通过php中的mailchimp api 3.0版发送电子邮件,但我运气不好。这是我的代码: $postString = '{ "message": { "html": "this is the emails html content", "text": "this is the emails text content", "subject": "this is the subject",
$postString = '{
"message": {
"html": "this is the emails html content",
"text": "this is the emails text content",
"subject": "this is the subject",
"from_email": "xxx@dyyy.sk",
"from_name": "John",
"to_email": "aaa.bbb@gmail.com",
"to_name": "Anton",
"track_opens": false,
"track_clicks": false
}}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->api_endpoint);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'drewm:'.$this->api_key);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/vnd.api+json', 'Content-Type: application/vnd.api+json'));
curl_setopt($ch, CURLOPT_USERAGENT, 'DrewM/MailChimp-API/3.0 (github.com/drewm/mailchimp-api)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->verify_ssl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
$result = curl_exec($ch);
echo $result;
我做错了什么?
<?php
//require_once('mailchimpint/mcapi/inc/MCAPI.class.php');
$apikey = 'Your api';
$to_emails = array('to email 1', 'toemail 2');
$to_names = array('Name 1', 'Name 2');
$message = array(
'html'=>'Yo, this is the <b>html</b> portion',
'text'=>'Yo, this is the *text* portion',
'subject'=>'This is the subject',
'from_name'=>'Me!',
'from_email'=>'',
'to_email'=>$to_emails,
'to_name'=>$to_names
);
$tags = array('WelcomeEmail');
$params = array(
'apikey'=>$apikey,
'message'=>$message,
'track_opens'=>true,
'track_clicks'=>false,
'tags'=>$tags
);
$url = "http://us5.sts.mailchimp.com/1.0/SendEmail";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.'?'.http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
curl_close ($ch);
var_dump($result);
$data = json_decode($result);
echo "Status = ".$data->status."\n";
?>
我这里的代码用于测试邮件,但对于非测试邮件基本上是一样的,只是url正在更改
<?php
$apiKey = "your api key found easily in your account";
$campaignId = "your campaign id, you need to create one. Use the playground to get the id";
$memberId = md5(strtolower("membermail"));
$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);
?>
如果一切顺利,您应该有一个字符串“0”。请稍等,邮件将被发送
祝你好运 您不能像v1那样从API v3发送随机电子邮件。现在,您只能按照LamaDelRay的说明,用MailChimp发送以前创建的活动。更改哪个url和在哪里可能重复@Lamadelray$url行将使用您的apikey和活动ID生成。我可以将表单数据传递到此邮件吗?我们如何动态设置电子邮件和电子邮件正文,如mailchimp在设置活动期间,您必须设置主题和正文。它似乎是静态的。@AtaulMustafa您可以在json中指定主题。对于身体,这里和那里有一些技巧;这很难解释,值得一提。这个答案是针对1.0 api的,而不是3.0。对于仍在寻找答案的人来说,版本1将从2019年4月起停用。