Javascript 如何使用MailChimp API发送电子邮件

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

我正在nodejs中创建一个应用程序,使用MailChimp发送电子邮件。我曾经尝试过使用3.0API,但后来改为使用3.0API,因为1.0似乎不再起作用了(这让我大吃一惊)。我已使用设置了我的应用程序

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...
});