Node.js Nodemailer和SES - 错误:未定义传输方法

时间:2013-03-12 01:46:22

标签: node.js amazon-web-services amazon-ses nodemailer

我正在使用nodemailer发送带有SES的电子邮件。我这样设置:

require("nodemailer").createTransport("SES", {
    AWSAccessKeyID: "AKIAJZFUSYQJNEX3VS2A",
    AWSSecretKey: "XXX", //real information removed
    SeviceUrl:"https://email.us-west-1.amazonaws.com"
}),

当我发送电子邮件时:

  

错误:未定义传输方法

有关为何发生这种情况的任何想法?

*编辑:*尝试了两种解决方案,但它们无法正常工作

2 个答案:

答案 0 :(得分:4)

您必须在发送邮件时使用传输。试试如下,

var nodemailer = require("nodemailer");
var transport = nodemailer.createTransport("SES", {
    AWSAccessKeyID: "AKIAJZFUSYQJNEX3VS2A",
    AWSSecretKey: "XXX",
    SeviceUrl:"https://email.us-west-1.amazonaws.com"
}),

//On sending mail
nodemailer.sendMail({
        transport : transport, //pass your transport
        sender : 'senderid@email.com' ,
        to : 'receiverid@email.com',
        subject : "SUBJECT",
        html: '<p> Hello World </p>'
      })

注意:我假设您的传输是有效的,并且您的密钥是足够的权限(网络权限也是如此。)

答案 1 :(得分:3)

您的ServiceUrl配置错误。亚马逊SES目前只有available in us-east-1。请将ServiceUrl设置为https://email.us-east-1.amazonaws.com

此外,为了将来参考,请不要共享您的AWS密钥。我强烈建议您旋转AWS密钥,因为它们是在您的问题的早期发布的。