javascript - Wix 网站需要 Javascript 以通过 API 服务发送提交表单的电子邮件
问题描述
我是 javascript 新手,任何帮助将不胜感激。
到目前为止的
更新步骤:
1.)创建 Wixsite 和表单
2.)创建 Mailjet 帐户并将电子邮件地址注册为批准的发件人
3.)我有我的 APIkey 和我的秘密 APIkey
4.)我有 2 个后端 .js 文件_a.)mailjet .js _b.)email.js
以下代码在我的 mailjet.js 中:
import wixFetch from 'wix-fetch'; export function sendWithMailjet(MJ_APIKEY_PUBLIC, MJ_APIKEY_PRIVATE, FromEmail, FromName, Recipients, subject, content) {
var headers = {
"Authorization": "Basic" + btoa(MJ_APIKEY_PUBLIC + ":" + MJ_APIKEY_PRIVATE),
"Content-Type": "application/json"
};
var body = {
"FromEmail": FromEmail,
"FromName": FromName,
"Subject": subject,
"Text-part": content,
"Recipients": [{
"Email": Recipients
}
]
};
return fetch('"https://api.mailjet.com/v3/send', {
method: 'POST',
headers: headers,
body: JSON.stringify(body)
})
.then((res) => {
if (res.status === 200)
return 'Email was sent';
else {
var headersString = '';
res.headers.forEach((value, name) => headersString += `${name}: ${value}\n`);
return res.text()
.then((bodyText) => {
return Promise.reject(new Error('Failed to send email.\n' +
`Status: ${res.status}\n` +
headersString +
bodyText));
})
}
});}
以下代码在我的 email.js 中
import {sendWithMailjet} from 'backend/mailjet.js'; export function sendEmail(FromEmail, FromName, Recipients, subject, content) {
const MJ_APIKEY_PUBLIC = 'myapipubliccode'; //mailjet API key
const MJ_APIKEY_PRIVATE = 'myapisecretcode'; //mailjet secret key
FromEmail = 'jparks@jonescarter.com';
FromName = '"James Parks" <jparks@jonescarter.com>';
return sendWithMailjet(MJ_APIKEY_PUBLIC, MJ_APIKEY_PRIVATE, FromEmail, FromName, Recipients, subject, content);
}
在我的表单页面上,我有以下代码:
import {sendEmail} from 'backend/email';
function SendClientEmail() {
const Subject = `New Submission from ${$w("#input3").value}`;
var content = `Name: ${$w("#input1").value}
\rEmail: ${$w("#input3").value}
\rFirstName: ${$w("#input1").value}
\rLastName: ${$w("#input2").value}
\rUserEmail: ${$w("#input3").value}
\rLocation: ${$w("#dropdown1").value}
\rPractice: ${$w("#dropdown2").value}
\rEventName: ${$w("#input4").value}
\rEventDate: ${$w("#datePicker1").value}
\rNeededBy: ${$w("#datePicker2").value}
\rQuantity: ${$w("#input5").value}
\rConfirm: ${$w("#dropdown3").value}
\rComments: ${$w("#textBox1").value}`;
var Recipients = `${$w("#input3").value}`;
//Make sure your from email address is validated in mailjet
sendEmail("FromEmail","FromName","Recipients",Subject, content)
.then(response => console.log(response));}
资源:
Wix 如何发送电子邮件表单提交 - https://support.wix.com/en/article/how-to-send-an-email-on-form-submission
面向开发人员的 Mailjet - https://dev.mailjet .com/guides/?java#getting-started
再次感谢任何帮助。谢谢!
解决方案
推荐阅读
- postgresql - 设置 Kubernetes 集群并运行数据库
- javascript - 我们不能在 React.js 的数组中迭代 material-ui 吗?
- c++ - 如何打印 NXN 框的对角线?检查我的代码?
- reactjs - 使用 useEffect 清理先前组件的 React Redux 双挂载
- python - 为 Django 组中的用户分配权限
- python - 避免 Zipfile.write 中的日期更改
- vue.js - 如何在 Vue3 中的任何组件中创建全局模式以在需要时显示消息?
- c# - 具有自有实体并在项目升级到 EF Core 3.1 时被定义为自有实体中断的类型
- c# - 如何从 ListBoxFor 中选择多个项目并传递给控制器 Post 方法
- python - 我可以使用什么 sqlite3 查询“日期范围”条件?