第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

向客戶(hù)端發(fā)送確認(rèn)電子郵件以將數(shù)據(jù)保存到 firestore

向客戶(hù)端發(fā)送確認(rèn)電子郵件以將數(shù)據(jù)保存到 firestore

HUWWW 2023-07-20 10:36:22
我正在嘗試制作一個(gè)用于在線預(yù)訂的網(wǎng)站。該網(wǎng)站已托管在 firebase 中,我正在使用 firestore 收集預(yù)訂詳細(xì)信息。我正在使用下面給出的代碼來(lái)收集 firestore 中的詳細(xì)信息。var firestore =  firebase.firestore();var messagesRef = firestore.collection("BookingData");//listen for submitdocument.getElementById('bookingForm').addEventListener('submit',submitForm);function submitForm(e){ e.preventDefault(); //get valuesvar email = getInputVal('email');var packageFields = getInputVal('packageFields');var name = getInputVal('name');var phone = getInputVal('phone');var date = getInputVal('date');saveMessage(email, packageFields, name, phone, date);//show alert}// function to get form values function getInputVal(id) {return document.getElementById(id).value; }//save messagesfunction saveMessage(email, packageFields, name, phone, date) {  messagesRef.add({   email:email,   packageFields:packageFields,   name:name,   phone:phone,   date:date   }).then(function(docRef) {console.log("Document written with ID: ", docRef.id);}) .catch(function(error) {  console.error("Error adding document: ", error);});}現(xiàn)在的問(wèn)題是,我想使用 JS 和 SMTP 向我的客戶(hù)發(fā)送電子郵件,并在有預(yù)訂時(shí)通過(guò)我的個(gè)人電子郵件 id 收到一封電子郵件 [即數(shù)據(jù)保存在 firestore 中(用 id 編寫(xiě)的文檔)]。電子郵件將自動(dòng)發(fā)送到提供的電子郵件 ID。我該怎么辦呢。提前感謝您的任何幫助。
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

可能的解決方案之一是使用專(zhuān)用于電子郵件發(fā)送的Firebase擴(kuò)展。

由于您希望在集合中創(chuàng)建新文檔時(shí)發(fā)送電子郵件BookingData,因此配置它將是小菜一碟。

只需按照配置說(shuō)明進(jìn)行操作,并在“電子郵件文檔集合”字段中輸入“BookingData”(“電子郵件文檔集合”是“包含用于構(gòu)建和發(fā)送電子郵件的文檔的集合的路徑”)

然后,如此處文檔中所述,在 BookingData 集合中創(chuàng)建的文檔中,包含一個(gè)與 和, (或) 字段to具有相同值的字段以及您自己的電子郵件。然后,使用文檔的字段指定其他電子郵件元素,例如主題行和電子郵件正文(純文本或 HTML)。emailccbccmessage


請(qǐng)注意,這樣做會(huì)將所有這些額外信息(以及一些包含擴(kuò)展執(zhí)行狀態(tài)的字段)添加到 BookingData 文檔中。如果您希望避免將這些額外信息添加到此文檔中,只需使用另一個(gè)專(zhuān)用集合來(lái)觸發(fā)(和配置)電子郵件。

要通過(guò)這個(gè)特定的專(zhuān)用集合生成并發(fā)送電子郵件,您可以使用批量寫(xiě)入,如下所示:

var messagesRef = firestore.collection("BookingData");

var emailsRef = firestore.collection("emails");? // Additional collection


var batch = firestore.batch();


batch.set(messagesRef,?

?{

? ?email:email,

? ?packageFields:packageFields,

? ?name:name,

? ?phone:phone,

? ?date:date

? ?}

);


batch.set(emailsRef,?

?{

? ?to:email,

? ?bcc:'youremail@mail.com',

? ?message: {

? ? subject: 'New order',

? ? html: 'This is an <code>HTML</code> email body.',

? ?}

? }

);

// Commit the batch

batch.commit().then(function () {

? ? // ...

});

不要忘記:

  • 通過(guò)安全規(guī)則拒絕對(duì)集合的讀寫(xiě)訪問(wèn)權(quán)限emails。

  • 配置擴(kuò)展時(shí),在“電子郵件文檔集合”字段中輸入“電子郵件”。

請(qǐng)注意,要安裝和使用 Firebase 擴(kuò)展,您的項(xiàng)目必須位于 Blaze 計(jì)劃中。


查看完整回答
反對(duì) 回復(fù) 2023-07-20
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

我可能會(huì)使用提供 HTTP API 進(jìn)行郵件發(fā)送的服務(wù)。

SendGrid 是一個(gè)很好的選擇,這里有一個(gè)簡(jiǎn)單的例子(src):

const functions = require("firebase-functions");

const sgMail = require("@sendgrid/mail");

const cors = require("cors")({

? origin: true

});


exports.emailMessage = functions.https.onRequest((req, res) => {

? const { name, email, phone, message } = req.body;

? return cors(req, res, () => {

? ? var text = `<div>

? ? ? <h4>Information</h4>

? ? ? <ul>

? ? ? ? <li>

? ? ? ? ? Name - ${name || ""}

? ? ? ? </li>

? ? ? ? <li>

? ? ? ? ? Email - ${email || ""}

? ? ? ? </li>

? ? ? ? <li>

? ? ? ? ? Phone - ${phone || ""}

? ? ? ? </li>

? ? ? </ul>

? ? ? <h4>Message</h4>

? ? ? <p>${message || ""}</p>

? ? </div>`;

? ? const msg = {

? ? ? to: "myemail@myemail.com",

? ? ? from: "no-reply@myemail.com",

? ? ? subject: `${name} sent you a new message`,

? ? ? text: text,

? ? ? html: text

? ? };

? ? sgMail.setApiKey(

? ? ? "SENDGRID API KEY"

? ? );

? ? sgMail.send(msg);

? ? res.status(200).send("success");

? }).catch(() => {

? ? res.status(500).send("error");

? });

});


查看完整回答
反對(duì) 回復(fù) 2023-07-20
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

這可以使用 smtp.js 使用下面給出的代碼來(lái)完成


var firestore = firebase.firestore();


var messagesRef = firestore.collection("bookingData");


//listen for submit

document.getElementById("bookingForm").addEventListener("submit", submitForm);


function submitForm(e) {

  e.preventDefault();


  //get values

  var email = getInputVal("email");

  var packageFields = getInputVal("packageFields");

  var name = getInputVal("name");

  var phone = getInputVal("phone");

  var date = getInputVal("date");

  var [persons] = getInputVal("persons");


  saveMessage(email, packageFields, name, phone, date, persons);

  sendEmail(packageFields, name, date, persons);

  //show alert

}


// function to get form values


function getInputVal(id) {

  return document.getElementById(id).value;

}


//save messages


function saveMessage(email, packageFields, name, phone, date, persons) {

  messagesRef

    .add({

      email: email,

      packageFields: packageFields,

      name: name,

      phone: phone,

      date: date,

      persons: persons,

    })

    .then(function (docRef) {

      console.log("Document written with ID: ", docRef.id);

      console.log(email);

    })

    .catch(function (error) {

      console.error("Error adding document: ", error);

    });

}


function sendEmail(packageFields, name, date, persons) {

  Email.send({

    Host: "smtp.gmail.com",

    Username: "trippyadive.web.app@gmail.com",

    Password: "xxxxxxxxxx",

    To: "subhodiproy161101@gmail.com",

    From: "trippyadive.web.app@gmail.com",

    Subject: "Sending Email using javascript",

    Body: `Your package of ${packageFields} for ${name} with total ${persons} persons (incl. ${name}) dated ${date} has been provisonalised. Your seat will be confirmed once you complete the payment of the Security Deposit`,

  }).then(function (message) {

    alert("mail sent successfully");

  });

}



查看完整回答
反對(duì) 回復(fù) 2023-07-20
  • 3 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)