错误:无效的发件人电子邮件地址 - SendGrid

3

我已经使用 SendGrid.com 处理密码重置电子邮件请求几年了,没有任何问题。我没有改变任何内容,但在过去的两天中,所有用户在所有电子邮件请求上都收到了一个 "错误:无效的发件人电子邮件地址" 的错误消息。

这种情况发生在所有有效的电子邮件地址上。

我简直想不出为什么会突然开始发生这种情况。 SendGrid 在他们的端上似乎没有问题。 我正在等待来自 Sendgrid 的反馈。

我的设置:

    var nodemailer = require('nodemailer');
    var sgTransport = require('nodemailer-sendgrid-transport');

    app.post('/forgot', usernameToLowerCase, function(req, res, next) {
    async.waterfall([
    function(done) {
    crypto.randomBytes(20, function(err, buf) {
    var token = buf.toString('hex');
    done(err, token);
    });
    },
    function(token, done) {
    User.findOne({ username: req.body.username }, function(err, user) {
    if (!user) {
    req.flash('error', 'No account with that email address exists.');
    return res.redirect('/forgot');
    }
    
    user.resetPasswordToken = token;
    user.resetPasswordExpires = Date.now() + 3600000; // 1 hour
    
    user.save(function(err) {
    done(err, token, user);
    });
    });
    },
    function(token, user, done) {
    
    
    var options = {
    auth: {
    api_user: '=====',
    api_key: '======'
    }
    }
    
    var client = nodemailer.createTransport(sgTransport(options));
    
    var email = {
    from: 'BusinessName',
    to: user.username,
    subject: 'Reset Your Password',
    text:'====='
    };
    
    client.sendMail(email, function(err) {
    req.flash('success', 'An email was sent to ' + user.username + ' with further instructions.' );
    done(err);
    });
    }
    ], function(err) {
    if (err) return next(err);
    res.redirect('/forgot');
    });
    });
1个回答

1
我在使用php的SendGrid库时遇到了相同的错误信息“无效的发件人电子邮件地址”。看起来SendGrid在其api中对于“from”字段格式进行了一些不兼容的更改。
在我的情况下,“from”字段不再接受单个电子邮件地址,因此我将其更改为一个包含单个电子邮件地址的数组,并且它可以正常工作。
from: ['some@example.com']

如果没有帮助,尝试将传输包装器发出的请求与SendGrid文档https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html进行比较。我不确定包装器是如何工作的,但api中“from”字段的预期格式似乎是这样的:
"from": {
  "email": "example@example.com"
}

做到了,非常感谢您的输入!我把“from”电子邮件设置为仅我的业务名称“BusinessName”。很长一段时间都不是有效的电子邮件地址。显然SendGrids端发生了一些变化。将其更改为[“BusinessName@gmail.com”]在数组中解决了问题。谢谢!! - AndrewLeonardi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接