调用emailjs.send发邮件遇422错误(收件人地址为空),如何修正?
解决EmailJS send方法422错误(收件人地址为空)的方案
问题原因
emailjs.send方法要求传入的参数键名必须和你在EmailJS后台配置的模板变量名完全匹配(包括大小写),你当前的emailParams中的键名和模板里的收件人变量名不匹配,导致系统识别不到收件人地址,返回422错误。sendForm能正常工作是因为它会自动读取表单元素的name属性作为参数键名,而这些name刚好和模板变量名一致。
修正步骤
- 登录EmailJS后台,打开你使用的邮件模板。
- 检查模板中用到的变量:
- 查看模板内容里的变量(比如
{{to_email}}、{{recipient}}这类格式) - 同时检查模板设置里的「To Email」字段,如果这里用了变量(比如
{{to_email}}),这个变量名就是你需要在代码中传入的键名。
- 查看模板内容里的变量(比如
- 修改代码中的
emailParams,确保键名和模板变量完全一致:
比如如果模板里的收件人变量是{{recipient_email}},代码要改成:const emailParams = { recipient_email: '...', // 和模板变量名严格匹配 from_name: 'Your Name', message: 'Hello, this is the email content.' }; - 确认所有模板中用到的变量都在
emailParams中有对应的键值对,不能遗漏。
示例修正(假设模板变量为to_email)
如果确认模板里的收件人变量就是to_email,检查填写的邮箱地址是否有效、未留空:
const emailParams = { to_email: 'valid-recipient@example.com', // 替换为实际有效收件人邮箱 from_name: 'Your Name', message: 'Hello, this is the email content.' };
内容的提问来源于stack exchange,提问作者Gtea
相关产品推荐
相关产品推荐

