【问题标题】:Error: Invalid from email address - SendGrid错误:电子邮件地址无效 - SendGrid
【发布时间】:2020-09-26 17:23:44
【问题描述】:

几年来,我一直在使用 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');
    });
    });

【问题讨论】:

    标签: node.js email sendgrid nodemailer


    【解决方案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"
    }
    

    【讨论】:

    • 成功了,非常感谢您的输入!我已将“发件人”电子邮件设置为我的公司名称“BusinessName”。多年来甚至没有一个有效的电子邮件地址。 SendGrids 结束时发生了明显的变化。将其更改为数组中的 ["BusinessName@gmail.com"],即可解决问题。谢谢!!
    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2017-01-10
    • 2013-02-28
    相关资源
    最近更新 更多