2

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

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

当我发送电子邮件时,我得到:

错误:未定义传输方法

关于为什么会发生这种情况的任何想法?

*编辑:*尝试了两种解决方案,但它们都不起作用

4

2 回答 2

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>'
      })

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

于 2013-03-12T09:57:05.343 回答
3

ServiceUrl的配置不正确。Amazon SES 目前仅在 us-east-1中可用。请设置ServiceUrlhttps://email.us-east-1.amazonaws.com.

此外,为了将来参考,请不要分享您的 AWS 密钥。我强烈建议您轮换您的 AWS 密钥,因为它们已在您的问题前面发布。

于 2013-03-13T00:17:20.450 回答