React集成emailjs发送邮件时出现412错误求助
解决EmailJS 412预条件失败错误
以下是针对该错误的排查和修复步骤:
核对模板变量与代码参数的一致性
登录EmailJS后台,打开你使用的邮件模板,检查模板中使用的变量名(如{{from_name}}、{{message}}等)是否和代码中传入的参数完全一致,包括大小写、拼写。哪怕是一个字符的差异(比如把from_name写成fromName)都会触发预条件失败。验证邮箱服务的配置状态
检查你在EmailJS中绑定的邮件服务(比如Gmail、Outlook)是否已完成授权:- 若使用Gmail,确认是否开启了对应权限(开启两步验证的需使用应用密码);
- 确认邮箱服务的SMTP配置正确,未被邮箱服务商限制。
检查请求参数的合法性
在调用emailjs.send前打印form对象内容,确认:form.email是符合格式的合法邮箱地址;- 所有模板用到的参数都有非空值,无必填字段遗漏;
- 未传入特殊字符或格式错误的内容。
确认域名白名单配置
登录EmailJS后台进入“Security”设置,检查当前React应用的域名是否已添加到Allowed Domains列表。未添加的域名可能会触发服务端预条件拦截。排查密钥是否混淆
再次确认你传入的是EmailJS的Public Key(用户ID),而非Secret Key。Secret Key仅用于服务器端调用,前端调用必须使用Public Key。
若以上步骤排查后仍未解决,可尝试在EmailJS后台重新创建测试模板和服务,用最简参数调用测试,逐步定位问题。
内容的提问来源于stack exchange,提问作者Engr. Umair Ul Isam
相关产品推荐
相关产品推荐

