首页 > 解决方案 > 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

再次感谢任何帮助。谢谢!

标签: javascriptapi-design

解决方案


推荐阅读