VueJS 使用 SmtpJS 完成寄信功能
網頁表單通常需要撰寫 PHP 之類的動態網頁程式碼,一般前端工程師或網頁設計初探者難以達成。此文章分享了關於不用後端也能使用 Vue.js 引入smpt.js 的寄信功能~
Step1 官網點選 Download下載 smpt.js 檔
Step2 點選 Encrypt your SMTP credentials 按鈕取得 TOKEN
要把你的 SMTP 伺服器等資訊填上表單中,通常租用主機都會附 SMTP 功能,SMTP Host 應該可以在你的主機資訊中找到。你的免費信箱可能也有 SMTP 伺服器功能,但不保證會成功。
填寫完畢並且按下 Generate security token
按鈕之後,就會出現專屬你的 token,記得先把這段 token 複製下來。本案例是跟公司取得 SMTP 的帳密,但這裡踩了一個坑: 公司取用的 Port 不是 25,所以會出現以下 error 訊息,經過跟該平台來回溝通多次後,在郵件主機的 Port 回傳時間太長,建議使用官方的 port: 25。
Step3 引入 smpt.js
將檔案放在 assets/js 底下,因為是要給Vue 組件內直接使用,這裡是直接在檔案裡將{} 設成變數,底下再 export default,由於我有使用 eslint,但不想去額外花時間修改此 js,因此在最上面加上 /* eslint-disable */ 直接忽略此 js 經過 eslint 檢查。
Step4 上code
再把下列的程式碼,接著在 smtp.js 之後寫上即可。這裡會做個按鈕的觸發事件綁上 sendMail(),表單送出後,當中不會有任何回饋,使用者必須要等一會兒後,傳送成功才會出現 OK 的訊息。建議可以在這邊自己加入 loading 或等待畫面,使用者會比較清楚程式有在運作。
如果沒收到OK的話,也可將錯誤碼,傳給該平台進行詢問,而該平台的服務人員還蠻熱心的,會回覆相關的解決辦法。