在前端開發中,JavaScript並沒有提供直接操作Email郵箱的功能方法,但是遇到這樣的需求,我們應該如何實現js發送郵件至指定郵箱功能呢?下面列舉能夠在通過前端實現郵件發送的幾種方式:
方式一:利用a標簽的href屬性
<a href="mailto:sample@fly63.com?subject=test&cc=sample@hotmail.com&subject=主題&body=內容">send mail</a>
這種方式需要客戶端安裝有郵件客戶端軟件,比如 Foxmail,Outlook,YoMail之類的,mailto等於就是調用本機的郵件客戶端,來進行發送郵件。記得需要配置郵箱的戶手工配POP3和SMTP哦!!
方式二:利用js中location
<script language=javascript> location="mailto:sample@fly63.com?subject=test&cc=sample@hotmail.com&subject=主題&body=內容"; </script>
資源網站搜索大全https://55wd.com
這種和方式一一樣,需要安裝郵件客戶端軟件,只是改為在js中調用而已。
方式三:使用node中nodemail
首先需要安裝node的環境,然后安裝nodemailer:
npm install nodemailer --save npm install nodemailer-smtp-transport --save config.js下的配置: module.exports = { email: {//郵件配置 service: '郵箱地址', user: '你的郵箱', pass: '你的密碼', } }
調用方法:
sendMail('fly63@qq.com','這是測試郵件', '這是內容');
方式五: 使用node的emailjs
需要node的環境,安裝emailjs,如下:
npm install emailjs
由於郵箱的SMTP服務默認是關閉的,那我們要發送的話,首先得開啟,然后關鍵點來了,開啟的時候會生成一個授權碼,這個授權碼需要復制下來,保存好。
實現代碼:
var email = require("emailjs"); var server = email.server.connect({ user: "xxxxxxx@qq.com", // 你的QQ用戶 password:"xxxxxxxxx", // 注意,不是QQ密碼,而是剛才生成的授權碼 host: "smtp.qq.com", // 主機,不改 ssl: true // 使用ssl }); //開始發送郵件 server.send({ text: "郵件內容", //郵件內容 from: "xxxxxxx@qq.com", //誰發送的 to: "xxxxxxx@qq.com", //發送給誰的 subject: "郵件主題" //郵件主題 }, function(err, message) { //回調函數 console.log(err || message); });
方式六: 使用jMail
jmail是一個第三方郵件操作組件,通常位於web服務器端,和站點程序緊密配合來接收及提交郵件到郵件服務器的控件,讓網站擁有發送郵件和接收郵件的功能。需要下載運行jMail.dll文件安裝服務,同時瀏覽器存在兼容問題,需要開啟POP/IMAP,host配置等,不推薦大家使用。