我正在尝试使用MailChimp API的v3安排广告系列,但我在API文档上看不到任何方法。
http://developer.mailchimp.com/documentation/mailchimp/reference/overview/
有人知道如何在v3上进行调度吗?
答案 0 :(得分:5)
要将邮件发送到列表,首先需要创建列表和广告系列。
如果您已经创建了这些,可以将带有HTTP请求的预定邮件发送到以下地址。
https://SERVER.api.mailchimp.com/3.0/campaigns/CAMPAIGNID/actions/schedule
服务器:MailChimp为您指定的服务器,您可以通过登录了解该信息。您的信息中心网址将类似于https://us6.admin.mailchimp.com/
在上述情况下, SERVER us6 。
这些是来自MailChimp v3文档的请求参数。
申请正文参数
<强> schedule_time 强>
UTC的日期和时间,用于安排投放广告系列。
<强>时间扭曲强>
选择广告系列在发送时是否应使用Timewarp。使用Timewarp计划的广告系列会根据收件人的时区进行本地化。例如,schedule_time为13:00的Timewarp广告系列将在当地时间下午1:00发送给每位收件人。使用批量投放的广告系列无法设置为true。
batch_delivery
选择广告系列是否应使用批量投放。对于使用Timewarp的广告系列,无法设置为true。
答案 1 :(得分:0)
在这一方上有点晚了,完整的链接是(http://developer.mailchimp.com/documentation/mailchimp/reference/campaigns/#action-post_campaigns_campaign_id_actions_schedule),因为我找不到完整的代码,这里有一个简单的样本使用(https://github.com/brandonseydel/MailChimp.Net):< / p>
public bool CampaignCreate(string campaignName, string subject, string emailText,
string emailSender, string emailSenderName, DateTime sendTime,
int templateID, string listID, ref string campaignID)
{
MailChimpManager mgr = new MailChimpManager(_apiKey);
try
{
if (String.IsNullOrWhiteSpace(campaignID))
CampaignExists(campaignName, out campaignID);
// convert to utc and round up to nearest 15 mins
if (sendTime.Kind != DateTimeKind.Utc)
sendTime = sendTime.ToUniversalTime();
sendTime = sendTime.RoundUp(TimeSpan.FromMinutes(15));
Models.Campaign newCampaign = new Models.Campaign();
newCampaign.Id = campaignID;
newCampaign.Type = CampaignType.Regular;
newCampaign.Settings = new Models.Setting();
newCampaign.Settings.Title = campaignName;
newCampaign.Settings.SubjectLine = subject;
newCampaign.Recipients = new Models.Recipient();
newCampaign.Recipients.ListId = listID;
newCampaign.Settings.FromName = emailSenderName;
newCampaign.Settings.ReplyTo = emailSender;
newCampaign.Settings.TemplateId = templateID;
newCampaign = mgr.Campaigns.AddOrUpdateAsync(newCampaign).Result;
campaignID = newCampaign.Id;
ContentRequest content = new ContentRequest();
content.Html = emailText;
mgr.Content.AddOrUpdateAsync(campaignID, content);
mgr.Campaigns.ScheduleAsync(newCampaign.Id, new CampaignScheduleRequest()
{ ScheduleTime = sendTime.ToString("o") } );
mgr.Campaigns.SendAsync(campaignID);
return (!String.IsNullOrWhiteSpace(campaignID));
}
finally
{
mgr = null;
}
}