ReactJS调用EmailJS发送邮件返回400错误,表单无法提交怎么办
React项目EmailJS调用400错误排查解决方案
- 优先解决emailjs.min.js引入问题
如果你是直接在index.html中引入CDN资源,先打开浏览器控制台输入emailjs,如果返回undefined说明资源加载失败。更稳定的方式是替换为npm包安装:
安装命令:npm install @emailjs/browser --save
组件内导入语句:import emailjs from '@emailjs/browser' - 检查请求参数格式是否合规
400错误绝大多数为参数不匹配导致,即便ID正确也需符合调用规则:发送请求的四个必填项顺序不能错:服务ID、模板ID、模板参数对象、公钥,缺一不可
标准调用参考代码:emailjs.send( '已确认正确的服务ID', '已确认正确的模板ID', { // 此处字段必须和EmailJS后台设置的模板变量完全一致,大小写也不能有差异 name: formData.name, email: formData.email, message: formData.message }, '已确认正确的公钥' ).then((res) => { console.log('发送成功', res) }).catch((err) => { console.log('发送失败', err) }) - 检查模板变量完整性
EmailJS后台模板中用到的所有变量,都必须在提交的参数对象中传递对应值,即使是空值也要明确传递,缺失变量会直接返回400错误。 - 检查域名白名单配置
确认EmailJS后台的允许域名列表中已添加当前项目的运行域名,本地开发场景需要额外添加http://localhost:3000这类本地访问地址,域名不在白名单内也会触发400错误。
内容的提问来源于stack exchange,提问作者Marie
相关产品推荐
相关产品推荐

