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

Posted

技术标签:

【中文标题】Node.js Nodemailer 和 SES - 错误:未定义传输方法【英文标题】:Node.js Nodemailer And SES - Error: No transport method defined 【发布时间】:2013-02-27 09:57:06 【问题描述】:

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

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

当我发送我收到的电子邮件时:

错误:未定义传输方法

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

您的ServiceUrl 配置不正确。 Amazon SES 目前只有 available in us-east-1。请将ServiceUrl设置为https://email.us-east-1.amazonaws.com

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

【讨论】:

感谢钥匙,刚刚换好了

以上是关于Node.js Nodemailer 和 SES - 错误:未定义传输方法的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 和 Nodemailer:我们可以将 PDF 文档附加到电子邮件中吗?

使用 node.js、node mailer 和 nodemailer-mailgun-transport 发送模板化电子邮件

Node.js使用Nodemailer发送邮件

Node.js使用NodeMailer发送邮件

node.js使用Nodemailer发送邮件

工具Node.js邮件发送组件- Nodemailer 1.0发布