使用带有 G Suite OAuth2 的 Nodemailer 发送群组电子邮件地址

send a group email address with Nodemailer with G Suite OAuth2

希望有人能帮助我。

我正在使用 nodejs 和 Nodemailer 连接到公司的 g-suite 帐户,我想从该帐户自动发送来自地址 info@domain.com 的电子邮件。

按照说明进行操作 en https://medium.com/@imre_7961/nodemailer-with-g-suite-oauth2-4c86049f778a

我在 azure 函数中有以下代码。


module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    const YOUR_EMAIL_ADDRESS = 'cesarcas@delfometrics.com';
    const YOUR_EMAIL_ADDRESS_AUTOMATIC_SENDER = 'info@delfometrics.com';
    // Change this to the receiver to the mail
    const SEND_TO = (req.query.toemail || (req.body && req.body.toemail));

    const transporter = nodemailer.createTransport({
            host: 'smtp.gmail.com',
            port: 465,
            secure: true,
            auth: {
            type: 'OAuth2',
            user: YOUR_EMAIL_ADDRESS,
            serviceClient: "bla bla bla private",
            privateKey: "bla blab bla private",
        },
    });
    try {
        await transporter.verify();
        await transporter.sendMail({
            from: YOUR_EMAIL_ADDRESS_AUTOMATIC_SENDER ,
            to: SEND_TO,
            subject: 'John Doe opens new farm YOU GOTTA SEE IT',
            text: 'It is beautiful 2.',
        });

        context.res = {
            // status: 200, /* Defaults to 200 */
            body: "already send email"
        };

    } catch (err) {
        context.log(err);
    }

} 

我遇到的问题是:

只有用户帐户在使用服务帐户,而不是群组电子邮件。

我已经按照说明在 google 工作区中配置了一个组:

1- 使用该地址创建一个群组,例如:‘info@domain.com’

2- 确保该组没有成员(如果您不想接收发送到该地址的电子邮件)

3- 确保群组可以用作电子邮件地址。请google这个,信息量很大

4- 在创建传输时将‘cesarcas@domain.com’设置为auth.user。

5- 现在您可以在发送电子邮件时将发件人字段设置为“info@domain.com”。

即便如此,配置群组后,

每次我 运行 代码时,电子邮件都会正确发送,但地址不正确

也就是说,虽然我有 YOUR_EMAIL_ADDRESS_AUTOMATIC_SENDER 中指定的地址 info@domain.com,但它从 YOUR_EMAIL_ADDRESS cesarcas@domain.com 发送电子邮件(这是正确的组织内的用户帐户),这似乎是 nodemailer 库的错误或 google 工作区中的组配置问题。

非常感谢您的帮助

这不是 nodemailer 错误

我解决了在我的 gmail 帐户中添加缺少配置的问题 YOUR_EMAIL_ADDRESS“Gmail 发送邮件为”

您可以在以下位置查看如何添加“Gmail 发送邮件为”:

https://www.youtube.com/watch?v=8Esd85pyH8I&feature=emb_logo&ab_channel=GoldyArora

按照 https://medium.com/@imre_7961/nodemailer-with-g-suite-oauth2-4c86049f778a

中的说明进行操作

我确认 Bogdan Bota 的写作有效,并且我能够从我的组织 info@domain.com 中的群组电子邮件发送电子邮件,从我的帐户 cesarcas@domain.com.[=13 验证=]

另请注意,您需要有权访问群组电子邮件,在我的情况下,info@domain.com 才能验证您是否可以使用该地址发送电子邮件。