Emailjs 有时只与 Microsoft Edge 一起工作
Emailjs just working sometimes with Microsoft Edge
嗨,我是网络开发的新手,我正在尝试使用 emailJS 发送一个简单的联系表单,一周前它在我的本地主机和一个来自 firebase 的托管网站上工作,但我不知道发生了什么停止正常工作,现在只能在 Microsoft Edge 浏览器的本地主机上工作。如果我尝试在其中一个文本区域为空的情况下提交,则会弹出 window 警报,但是当我拥有所有字段时,它只会重新加载页面,但不会显示显示“电子邮件”的 window 警报发送!'
我按照本教程使用了 EmailJS https://blog.mailtrap.io/react-send-email/#Sending_emails_with_EmailJS
我正在使用 ReactJS 开发网站,所以这里是我的联系表单组件的功能,感谢您的帮助!谢谢 :D
这是我处理文本区域更改的地方
constructor(props) {
super(props);
this.state ={
name: '',
email: '',
message: '',
}
this.handleChangeName = this.handleChangeName.bind(this);
this.handleChangeEmail = this.handleChangeEmail.bind(this);
this.handleChangeMessage = this.handleChangeMessage.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);;
这是我的巅峰部分
handleChangeName(event) {
this.setState({name: event.target.value});
}
handleChangeEmail(event) {
this.setState({email: event.target.value});
}
handleChangeMessage(event) {;
this.setState({message: event.target.value});
}
handleSubmit(event) {
event.preventDefault();
const templateId = 'template_7HeYQshf';
if(this.state.email === '' || this.state.name === '' || this.state.message === '')
{
window.alert('All fields are required.')
window.location.reload();
}
else {
this.sendFeedback(templateId, {message_html: this.state.message, from_name: this.state.name,
reply_to: this.state.email})
}
}
sendFeedback (templateId, variables) {
window.emailjs.send(
'gmail', templateId,
variables
).then(res => {
window.alert('Email sent!');
window.location.reload();
})
// Handle errors here however you like, or use a React error boundary
.catch(err => window.alert('something went wrong, please try again '))
window.location.reload();
}
我通过以下更改解决了问题:
constructor(props) {
super(props);
this.state ={
name: '',
email: '',
message: '',
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
这是我的新峰会部分
handleChange = (event) => {
this.setState({[event.target.name]: event.target.value});
};
handleSubmit = (event) => {
event.preventDefault();
if(this.state.email === '' || this.state.name === '' || this.state.message === '')
{
window.alert('All fields are required.')
window.location.reload();
}
else {
emailjs.send(
"gmail",
"template_7HeYQshf",
{message_html: this.state.message, from_name: this.state.name, reply_to: this.state.email},
"*****"
)
window.alert('Email sent!')
window.location.reload();
}
}
嗨,我是网络开发的新手,我正在尝试使用 emailJS 发送一个简单的联系表单,一周前它在我的本地主机和一个来自 firebase 的托管网站上工作,但我不知道发生了什么停止正常工作,现在只能在 Microsoft Edge 浏览器的本地主机上工作。如果我尝试在其中一个文本区域为空的情况下提交,则会弹出 window 警报,但是当我拥有所有字段时,它只会重新加载页面,但不会显示显示“电子邮件”的 window 警报发送!' 我按照本教程使用了 EmailJS https://blog.mailtrap.io/react-send-email/#Sending_emails_with_EmailJS 我正在使用 ReactJS 开发网站,所以这里是我的联系表单组件的功能,感谢您的帮助!谢谢 :D
这是我处理文本区域更改的地方
constructor(props) {
super(props);
this.state ={
name: '',
email: '',
message: '',
}
this.handleChangeName = this.handleChangeName.bind(this);
this.handleChangeEmail = this.handleChangeEmail.bind(this);
this.handleChangeMessage = this.handleChangeMessage.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);;
这是我的巅峰部分
handleChangeName(event) {
this.setState({name: event.target.value});
}
handleChangeEmail(event) {
this.setState({email: event.target.value});
}
handleChangeMessage(event) {;
this.setState({message: event.target.value});
}
handleSubmit(event) {
event.preventDefault();
const templateId = 'template_7HeYQshf';
if(this.state.email === '' || this.state.name === '' || this.state.message === '')
{
window.alert('All fields are required.')
window.location.reload();
}
else {
this.sendFeedback(templateId, {message_html: this.state.message, from_name: this.state.name,
reply_to: this.state.email})
}
}
sendFeedback (templateId, variables) {
window.emailjs.send(
'gmail', templateId,
variables
).then(res => {
window.alert('Email sent!');
window.location.reload();
})
// Handle errors here however you like, or use a React error boundary
.catch(err => window.alert('something went wrong, please try again '))
window.location.reload();
}
我通过以下更改解决了问题:
constructor(props) {
super(props);
this.state ={
name: '',
email: '',
message: '',
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
这是我的新峰会部分
handleChange = (event) => {
this.setState({[event.target.name]: event.target.value});
};
handleSubmit = (event) => {
event.preventDefault();
if(this.state.email === '' || this.state.name === '' || this.state.message === '')
{
window.alert('All fields are required.')
window.location.reload();
}
else {
emailjs.send(
"gmail",
"template_7HeYQshf",
{message_html: this.state.message, from_name: this.state.name, reply_to: this.state.email},
"*****"
)
window.alert('Email sent!')
window.location.reload();
}
}