【nodemailer】 初試

nodemailer

nodemailer 是什麼?

簡單的講nodemailer就是用來發送郵件的。最近的一個項目須要向客戶的註冊郵箱發送驗證鏈接,研究了一下.
剛開始我覺得nodemailer還能夠用來接收郵件,看了好一下子文檔都沒發現怎麼接收郵件,結果弄錯了javascript

nodemailer 有哪些功能

  • 在支持純文本的基礎上還支持發送html格式的郵件內容
  • 支持markdown語法編輯的郵件
  • 支持發送文件附件
  • 支持多收件人,支持抄送,密送

nodemailer的插件

內嵌的插件

  • nodemailer-smtp-transport 使用SMTP發送郵件
    使用該插件能夠配置SMTP服務,不少手機上都有一個接受郵件服務的APP,裏面能夠設置多個郵件帳戶,而後該APP就能夠代你收發郵件,不過前提是你的帳戶開通了SMTP服務。如QQ郵箱能夠 設置->帳戶裏面設置開通SMTP服務
  • nodemailer-direct-transport 直接發送郵件
    雖然是直接發,看文檔上的例子,連密碼都沒設置就發了,確實我用的網易郵箱不用填密碼就發了,不過使用QQ郵箱就報錯。不過對於這點不用深究

做爲依賴安裝的插件

  • nodemailer-smtp-pool nodemailer-smtp-transport的升級版,使用了鏈接池
  • nodemailer-sendmail-transport該插件使得nodemailer能夠經過命令行發送郵件
  • 官網裏面介紹的另外幾個是爲和外部的API接口對接而開發的,用不到的話就不用在乎*

可選的插件

個人測試

//Created by yyrdl on 2015/10/2.
var nodemailer = require('nodemailer');
var smtpPool=require("nodemailer-smtp-pool");
var tool=require("./readFile");
var options={
    "service":"QQ",
    "auth":{
        "user":"xxxxx@qq.com",//你的帳號
        "pass":"xxxxx"//你帳號的密碼
    },
    "maxConnections":10,//最大鏈接數
    "secure":true //use SSL
};
var transporter = nodemailer.createTransport(smtpPool(options)); 

tool.readFile("./index.html",function(err,res){
    if(err){

    }else{
        transporter.sendMail({
            from:'xxxxx@qq.com',//這個應該和上面那個一致
            to: 'bbbbbbb@163.com',
            subject: 'hello',
            html: res//郵件是html格式,至於markdown或者mustache,或者Express Handlebars,去看相關文檔便可
        },function(err,res){
            if(err){
                console.log(err);
            }else{
                console.log(res);
            }
        });
    }
});

因爲能夠發送html格式的內容,猜想郵件的顯示框是一個iframe或者frame ,那這樣我是否是能夠引用外部樣式了呢?好比說bootstrap ^_^ ,好吧試試
PS:options中的service可選值能夠參考Nodemailer Well-Knowncss

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8"/>
    <link rel="stylesheet" type="text/css" href="http://libs.baidu.com/bootstrap/3.3.0/css/bootstrap.min.css"/>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script src="http://libs.baidu.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    <style>
      .s_c{
          margin-top:20px;
      }
    </style>
    <script>
        setTimeout(function(){
            alert("k");
        },3000);
    </script>
</head>
<body>

   <div class="container s_c" >
       <h1>Example Heading <span class="label label-default">Label</span></h1>
   </div>
</body>
</html>

然而結果倒是這樣的

第一文字並無居中,並且Label也不是淺色,因此猜想應該是不能夠引入外部文件的,標籤頁禁用,而且禁用javascript,然而使用style添加的樣式仍是能夠的html

---記錄,分享。轉載請註明出處!java

相關文章
相關標籤/搜索