我目前在一个项目中使用 emailJS,但在发送电子邮件时遇到困难。每次我尝试发送电子邮件时,应用程序和 emailJS 仪表板中的任务都会失败。
我的仪表板内部出现错误: 400 服务ID无效。要查找此 ID,请访问 https://dashboard.emailjs.com/admin
我的控制台正在生成: 加载资源失败:服务器响应状态为412()
根据emailJS文档,语法应该是:
emailjs.send(serviceID, templateID, templateParams, publicKey);
我的ServiceID和templateID是正确的,因为它们已经被复制和粘贴了。
我尝试过寻找其他形式的语法,但没有找到。有想过如何解决这个问题吗?感谢您的反馈。
类似的 StackOverflow 问题: 这个问题非常相似,我更改了我的ServiceID以适应它建议的语法,但是,我仍然有同样的问题。
import { useState, useEffect, useRef } from 'react'
import emailJs from '@emailjs/browser'
const Contact = () => {
const form = useRef()
const sendEmail = (e) => {
e.preventDefault()
emailJs.sendForm(
'service_gqp7he5',
'template_6ufyan1',
form.current,
'C1NQS6PIhSTNngfAj'
)
.then (() => {
alert('Message Successfully Sent')
},
() => {
alert('Failed to send the message, please try again!')
console.log();
})
}
useEffect(() => {
setTimeout(() => {
setLetterClass('text-animate-hover')
}, 3000)
}, [])
return (
<>
<div className='container contact-page' >
<div className='text-zone' >
<div className='contact-form'>
<form ref={form} onSubmit={sendEmail} >
<ul>
<li className='half'>
<input type='text' name='name' placeholder='Name' required />
</li>
<li className='half'>
<input type='email' name='email' placeholder='[email protected]' required />
</li>
<li>
<input type='text' name='subject' placeholder='Subject' required />
</li>
<li>
<textarea placeholder='Message' name='message' required ></textarea>
</li>
<li>
<input type='submit' className='flat-button' value='SEND' />
</li>
</ul>
</form>
</div>
</div>
</div>
</>
)
}
export default Contact
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/@emailjs/browser@3/dist/email.min.js">
</script>
<script type="text/javascript">
(function(){
emailjs.init("C1NQS6PIhSTNngfAj");
})();
</script>
出现该错误是因为每次访问该页面时EmailJS模板ID都会发生变化。为了解决这个问题,您需要自定义模板ID。例如,将
template_23fsds3
更改为 template_contact
。这将消除错误。