使用带有 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 才能验证您是否可以使用该地址发送电子邮件。
希望有人能帮助我。
我正在使用 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 才能验证您是否可以使用该地址发送电子邮件。