我正在使用nodemailer发送带有SES的电子邮件。我这样设置:
require("nodemailer").createTransport("SES", {
AWSAccessKeyID: "AKIAJZFUSYQJNEX3VS2A",
AWSSecretKey: "XXX", //real information removed
SeviceUrl:"https://email.us-west-1.amazonaws.com"
}),
当我发送电子邮件时:
错误:未定义传输方法
有关为何发生这种情况的任何想法?
*编辑:*尝试了两种解决方案,但它们无法正常工作
答案 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密钥,因为它们是在您的问题的早期发布的。