我正在尝试在nodemailer的帮助下配置AWS SES。
所以我在跟踪documentation。
这是他们提供的代码,我测试过:
let nodemailer = require("nodemailer");
let aws = require("@aws-sdk/client-ses");
const ses = new aws.SES({
apiVersion: "2010-12-01",
region: "us-west-2",
});
// create Nodemailer SES transporter
let transporter = nodemailer.createTransport({
SES: { ses, aws },
});
// send some mail
transporter.sendMail(
{
// These are obviously not the actual emails I am using
from: "configured_aws_email",
to: "recipient_email",
subject: "Message",
text: "I hope this message gets sent!",
ses: {
// optional extra arguments for SendRawEmail
Tags: [
{
Name: "tag_name",
Value: "tag_value",
},
],
},
},
(err, info) => {
console.log(
"🚀 ~ file: transactional-email-confiig.js ~ line 36 ~ err",
err
);
console.log(
"🚀 ~ file: transactional-email-confiig.js ~ line 41 ~ info.envelope",
info.envelope
);
console.log(
"🚀 ~ file: transactional-email-confiig.js ~ line 43 ~ info.messageId",
info.messageId
);
}
);
字符串
以下是我安装的所需软件包的版本:
package.json
"@aws-sdk/client-ses": "^3.40.0",
"aws-sdk": "^2.1026.0",
型
我在.env文件中配置了AWS密钥:
.env
AWS_ACCESS_KEY_ID=***************
AWS_SECRET_ACCESS_KEY=*************
型
这是节点版本:
node -v
v15.8.0
型
我使用的AWS SES电子邮件地址已验证:
x1c 0d1x的数据
但是,我一直得到这个错误:
node_modules/nodemailer/lib/ses-transport/index.js:242
this.ses.sendRawEmail(sesMessage, (err, data) => {
^
TypeError: this.ses.sendRawEmail is not a function
型
3条答案
按热度按时间eeq64g8w1#
对于那些使用
import
而不是require
的用户,请检查是否使用以下命令:字符串
如这里所述。
6rqinv9w2#
看起来
@aws-sdk/client-ses
接口没有sendRawEmail
方法。尝试安装旧的
aws-sdk
软件包:npm i aws-sdk
个然后用它来代替
字符串
mo49yndu3#
我遇到的一种可能性是jest mocking和重构,我正在从
sendEmail
更改为sendRawEmail
,并且还需要更新mock声明。