Javascript 如何使用MailChimp API发送电子邮件
我正在nodejs中创建一个应用程序,使用MailChimp发送电子邮件。我曾经尝试过使用3.0API,但后来改为使用3.0API,因为1.0似乎不再起作用了(这让我大吃一惊)。我已使用设置了我的应用程序Javascript 如何使用MailChimp API发送电子邮件,javascript,node.js,curl,mailchimp,needle.js,Javascript,Node.js,Curl,Mailchimp,Needle.js,我正在nodejs中创建一个应用程序,使用MailChimp发送电子邮件。我曾经尝试过使用3.0API,但后来改为使用3.0API,因为1.0似乎不再起作用了(这让我大吃一惊)。我已使用设置了我的应用程序 var apiKey = '<<apiKey>>', toEmail = '<<emailAddress>>', toNames = '<<myName>>', messag
var apiKey = '<<apiKey>>',
toEmail = '<<emailAddress>>',
toNames = '<<myName>>',
message = {
'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': toEmail,
'to_name': toNames
},
tags = ['HelloWorld'],
params = {
'apikey': apiKey,
'message': message,
'track_opens': true,
'track_clicks': false,
'tags': tags
},
url = 'https://us13.api.mailchimp.com/3.0/SendEmail';
needle.post(url, params, function(err, headers) {
if (err) {
console.error(err);
}
console.log(headers);
}
});
var apiKey='',
电子邮件=“”,
toNames=“”,
消息={
‘html’:‘哟,这是html部分’,
“文本”:“哟,这是*文本*部分”,
“主题”:“这就是主题”,
“来自我的名字”:“我!”,
“来自电子邮件”:“,
“发送电子邮件”:发送电子邮件,
“to_name”:托纳姆斯
},
标记=['HelloWorld'],
参数={
“apikey”:apikey,
“消息”:消息,
“track_opens”:正确,
“track_clicks”:false,
“标记”:标记
},
url='1〕https://us13.api.mailchimp.com/3.0/SendEmail';
post(url、参数、函数(错误、标题){
如果(错误){
控制台错误(err);
}
console.log(头文件);
}
});
我一直收到401响应(未授权,因为我没有正确发送API密钥)
由于服务器上的限制,我不得不使用针头。在中应该使用HTTP基本身份验证
pinder.gethttps://.api.mailchimp.com/3.0/“,{username:'anystring',password:'your_apikey'},
功能(err、resp){
//你的代码在这里。。。
});
编辑
@TooMuchPete是正确的,
SendMail
端点在MailChimp API v3.0中无效。我没有注意到这一点,我已经编辑了我的答案。API v3.0中没有“SendEmail”端点。MailChimp的STS是其Mandrill事务服务的前置游标,可能仅适用于具有现有STS活动的用户帐户。无法创建新的STS活动。如果你有一个每月付费的MailChimp账户,你应该调查Mandrill。如果不是的话,我在邮枪方面运气不错。是“anystring”必须是特定的还是可以是任何字符串。我已经尝试过了,但仍然收到401错误。因此,这修复了它,我的用户名有一个输入错误。虽然认证是正确的,但值得注意的是SendEmail不是有效的API v3端点。这是正确的答案。还应该提到的是,即使这样做有效,我也没有正确设置身份验证@micmia提到了设置身份验证的正确方法。在我开始一个新问题之前,任何关于这将返回405(不允许使用方法)var apiKey='不允许使用方法的想法都是错误的。这意味着您使用的HTTP方法(在本例中为POST)对于您选择的资源无效。MailChimp使用HTTP方法来区分操作。发布用于创建、获取用于阅读等。因此,如何解决该特定问题取决于您尝试执行的操作,但您可能希望使用不同的方法(修补程序或获取)或使用不同的端点(如/campaits/)非常好的答案,事实证明我的竞选ID是错误的。我在这里留下评论,让其他人知道我将使用Mandrill来完成这项工作。如果已经有MailChimp订阅,那么可以使用Mandrill发送消息。这是一个更好的API(在我看来)为这项任务。
needle.get('https://<dc>.api.mailchimp.com/3.0/<endpoint>', { username: 'anystring', password: 'your_apikey' },
function(err, resp) {
// your code here...
});