簡體   English   中英

如何使用java腳本電子郵件發送表單響應

[英]how to send form response using java script email

順便說一下,我正在嘗試下面的代碼,它的工作正常,除了電子郵件響應我需要發送我從var queryString = $('#myform').serializeArray();收集的數據var queryString = $('#myform').serializeArray(); 現在我希望這個響應映射到電子郵件正文中,就像下面的書面代碼一樣。如果我錯了,請指導我,我如何將動態變量值傳遞到電子郵件正文或映射響應或其他任何東西,因為我想要發送帶有從表單字段收集的數據的電子郵件

Javascript 代碼

 $(document).ready(function(){

 $("#contact-submit").click(function(){
      var queryString = $('#myform').serializeArray();
       $.each(queryString, function(i, field){
       var first_name = "test";
    });
    $("#alert-message").show().fadeOut(2000);

    sendEmail(first_name)
 });
function sendEmail() {

Email.send({

    Host : 'smtp.gmail.com',
    port: '587',
    Username : "ssmeediesmaritim@gmail.com",
    Password : "sometext",
    To : 'muhammadarslantoor@gmail.com',
    From : "newworld.elpis.mailer@gmail.com",
    Subject : "Form Record Receipt",
    Body : "<html><h2>Header</h2><strong></strong><br></br><em>Italic</em></html>"
    }).then(
  message => console.log("success")
  );
 }
});

serializeArray返回一個鍵值對數組,而不是一個字符串。 而不是first_name變量將serializeArray方法的輸出傳遞給sendEmail

$("#contact-submit").click(function(){
  const dataArray = $('#myform').serializeArray();
  $("#alert-message").show().fadeOut(2000);
  sendEmail(dataArray).then(message => {
    console.log("success", message);
  });
});

然后在sendEmail內部為正在傳遞的dataArray創建一個參數,以便您可以在sendEmail函數中使用它。

由於serializeArray方法的輸出是一個數組,因此您可以使用Array.prototype.map循環遍歷數組中的鍵值對並將每個項目從

{
  name: 'foo', 
  value: 'bar'
}

變成字符串

"foo: bar"

對於本示例,我們使用Array.prototype.join()將數組轉換為字符串,並使用<br>標簽將它們連接起來以創建列表樣式。 但是你應該在這里添加你自己的風格來設計列表。

現在您有一個字符串,您可以將其連接到電子郵件正文中。 JavaScript 具有模板文字,這使得將變量注入字符串成為一項簡單的任務。

我建議您返回由Email.send()創建的 Promise, then在點擊偵聽器中使用。 通過這種方式,您可以處理每次調用sendEmail時發送電子郵件時要執行的操作的邏輯。 讓它更有活力。

function sendEmail(dataArray) {
  const dataString = dataArray.map(({name, value}) => `${name}: ${value}`).join('<br>');

  return Email.send({
    Host : 'smtp.gmail.com',
    port: '587',
    Username : "ssmeediesmaritim@gmail.com",
    Password : "Encrypt123",
    To : 'muhammadarslantoor@gmail.com',
    From : "newworld.elpis.mailer@gmail.com",
    Subject : "Form Record Receipt",
    Body : `
      <html>
        <body>
          <h2>Header</h2>
          ${dataString}
        </body>
      </html>`
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM