Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs Nodemailer:Sendgrid SMTP用户名&;使用现有代码的API密钥密码错误:550_Node.js_Email_Sendgrid_Nodemailer_Sendgrid Api V3 - Fatal编程技术网

Node.js Nodejs Nodemailer:Sendgrid SMTP用户名&;使用现有代码的API密钥密码错误:550

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

当前im正在使用sendgrid并使用nodejs库“('nodeEmailer')” 运输选项:

配置:

 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
        }
    },