如何使用Gmail在没有SMTP的nodemailer中发送电子邮件?

时间:2019-09-06 04:08:22

标签: node.js nodemailer

我们正在尝试使用nodemailer从Gmail发送电子邮件。最初,我们使用范围“ mail.google.com”。Google要求我们删除我们无法发送邮件的范围“ mail.google.com”。他们建议不要使用SMTP / IMAP。如何使用nodemailer做到这一点?

我正在使用以下代码段发送邮件

function sendMail(inp,emailData) {
let mailData = {
    from: inp.from, // **
    to: inp.to, // **
    subject: inp.subject, // **
    body: inp.html, // **
    attachments: inp.attachments || [],
}
return new Promise((resolve, reject) => {
    getTokens(emailData)
        .then(tokens => {
            let smtpTransport = nodemailer.createTransport({
                service: "gmail",
                debug:true,
                auth: {
                    type: "OAuth2",
                    user: mailData.from,
                    clientId: ClientId,
                    clientSecret: ClientSecret,
                    refreshToken: tokens.refreshToken,
                    accessToken: tokens.accessToken
                }
            });

            const mailOptions = {
                from: mailData.from,
                to: mailData.to,
                subject: mailData.subject,
                generateTextFromHTML: true,
                html: mailData.body,
                attachments: mailData.attachments
            };
            smtpTransport.sendMail(mailOptions, (error, result) => {
                if (error) reject({status:204,error});
                else resolve(result);
            });
        })
        .catch(error => {
            reject({status:204,error});
        });
}); }

此代码有什么问题,以及Google希望我们如何删除SMTP / IMAP?

0 个答案:

没有答案