SendGrid邮件发送接口中data的to参数如何配置为body.email的值
配置方法
你只需要将data对象内的to字段直接赋值为解析好的body.email即可,同时建议优化异步逻辑避免未知错误,修改后的完整代码如下:
const mail = require('@sendgrid/mail'); mail.setApiKey(process.env.SENDGRID_API_KEY); export default async (req, res) => { try { const body = JSON.parse(req.body); // 简单参数校验,避免非法请求,可按需调整 if (!body.email || !/^\S+@\S+\.\S+$/.test(body.email)) { return res.status(400).json({ status: 'error', msg: '邮箱格式非法' }) } const message = ` Name : ${body.name}\r\n Prenom : ${body.prenom}\r\n Adresse : ${body.adresse}\r\n Téléphone : ${body.telephone}\r\n email : ${body.email} \r\n Type de bien : ${body.message}\r\n Année de construction : ${body.annee} `; const data = { to: body.email, // 此处直接赋值前端传入的邮箱即可 from: 'souleymanportfolio@souleymanportfolio.com', subject: 'Nouveau Lead!', text: message, html: message.replace(/\r\n/g, '<br>') }; await mail.send(data); res.status(200).json({ status: 'Ok' }); } catch (err) { console.error('发信失败:', err) res.status(500).json({ status: 'error', msg: '邮件发送失败' }) } }
补充说明
- 你需要提前在SendGrid后台完成发件人邮箱
souleymanportfolio@souleymanportfolio.com的身份验证,否则会被SendGrid拦截发信请求 - 代码中新增的参数校验和异常捕获逻辑可按需调整,主要用于避免非法请求、方便定位发信失败的原因
- 原代码未对
mail.send加await异步等待,可能会出现接口已经返回响应但邮件还未发送的情况,补充后逻辑更严谨
内容的提问来源于stack exchange,提问作者Souleyman YACEF
相关产品推荐
相关产品推荐

