Node.js Nodejs Nodemailer:Sendgrid SMTP用户名&;使用现有代码的API密钥密码错误:550
当前im正在使用sendgrid并使用nodejs库“('nodeEmailer')” 运输选项: 配置:Node.js Nodejs Nodemailer:Sendgrid SMTP用户名&;使用现有代码的API密钥密码错误:550,node.js,email,sendgrid,nodemailer,sendgrid-api-v3,Node.js,Email,Sendgrid,Nodemailer,Sendgrid Api V3,当前im正在使用sendgrid并使用nodejs库“('nodeEmailer')” 运输选项: 配置: transporterOption: { host: process.env.SMTP_HOST, // smtp.sendgrid.net pool: true, maxConnections: 20, rateDelta: 1000, rateLimit: 150, aut
transporterOption: {
host: process.env.SMTP_HOST, // smtp.sendgrid.net
pool: true,
maxConnections: 20,
rateDelta: 1000,
rateLimit: 150,
auth: {
user: process.env.USER_NAME,
pass: process.env.PASSWORD
}
},
发送代码:
const config = require('./config');
const nodeMailer = require('nodemailer');
const htmlToText = require('nodemailer-html-to-text').htmlToText;
const transporter = nodeMailer.createTransport(config.transporterOption);
transporter.use('compile', htmlToText());
try {
let mailOptions = {
headers: { 'X-SMTPAPI': `{"category":["${myid}"]}` },
from: `"myname" <${toemail}>`,
replyTo: `"myname" <${toemail}>`,
to: `"name" <${emailAdr}>`,
subject: mysubject,
text: mytextbody,
html: myhtmlbodymsg
}
} catch (e) {
console.log(e);
}
“err”:{“message”:“缺少的凭据”
“普通”“名称”:“错误”,“堆栈”:“错误:缺少的凭据”
“普通”\n
备选案文2:
transporterOption: {
host: process.env.SMTP_HOST, // smtp.sendgrid.net
pool: true,
maxConnections: 20,
rateDelta: 1000,
rateLimit: 150,
auth: {
Username: process.env.USER_NAME, //’apikey’
Password: process.env.SENDGRID_API_KEY // fakekeyssssjhkjsahdkjsahdkjhsa
}
},
错误:“{”消息“:”邮件命令失败:550个未经身份验证的发件人
不允许“,”名称“:”错误“,”堆栈“:”错误:邮件命令失败:550
不允许未经身份验证的发件人\n“
备选案文3:
transporterOption: {
host: process.env.SMTP_HOST, // smtp.sendgrid.net
pool: true,
maxConnections: 20,
rateDelta: 1000,
rateLimit: 150,
auth: {
api_user: 'apikey',
api_key: process.env.SENDGRID_API_KEY // fakekeyssssjhkjsahdkjsahdkjhsa
}
},
错误:“{”消息“:”邮件命令失败:550个未经身份验证的发件人
不允许“,”名称“:”错误“,”堆栈“:”错误:邮件命令失败:550
不允许未经身份验证的发件人\n“
我还需要将Sendgrid的基本身份验证迁移到API密钥。
我试着用下面的方式使用API密钥,可能有效,但不知道我们是否仍在用这种方式进行基本身份验证,这种方式很快会因为强制的原因而失败 2FA.
让我知道我们在这里所做的是否正确
//下面的auth对象特定于节点电子邮件程序配置选项
//这与sendgrid本机API配置不同
//您可以尝试使用名为Username/Password的密钥,但我的密钥可以使用user/pass
认证:{
“user”:“apikey”,//您可以安装该软件包,然后创建如下传输:
const nodemailer=require('nodemailer');
const nodemailerSendgrid=require('nodemailer-sendgrid');
const transport=nodemailer.createTransport(
NoderSendGrid({
apiKey:process.env.SENDGRID\u API\u密钥
})
);
如果您使用的是TypeScript,还可以使用npm install--save@types/nodemailer sendgrid
安装相应的类型
这似乎已经取代了过时的,并且是由编写的。一个小缺点是,它在后台使用特定于供应商的库。它在文档SendGrid中工作得很疯狂,它说用户名:&密码:谢谢……它像一个符咒一样工作
transporterOption: {
host: process.env.SMTP_HOST, // smtp.sendgrid.net
pool: true,
maxConnections: 20,
rateDelta: 1000,
rateLimit: 150,
auth: {
api_user: 'apikey',
api_key: process.env.SENDGRID_API_KEY // fakekeyssssjhkjsahdkjsahdkjhsa
}
},