nodemailer 是什么?

简单的讲nodemailer就是用来发送邮件的。最近的一个项目需要向客户的注册邮箱发送验证连接,研究了一下.

刚开始我以为nodemailer还可以用来接收邮件,看了好一会儿文档都没发现怎么接收邮件,结果弄错了

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-Known

 <!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添加的样式还是可以的

---记录,分享。转载请注明出处!

【nodemailer】 初试的更多相关文章

  1. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

  2. nodemailer 发邮件

    var transporter = nodemailer.createTransport({//v1.0 above do not use 'SMTP' as first param host: &q ...

  3. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题

    之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...

  4. 初试Nodejs——使用keystonejs创建博客网站2(修改模板)

    上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...

  5. nodemailer实现node发送邮件

    作为一个前端er,利用node独立做一些全栈小项目,是很有效率和必要的. 需要: 做一个活动报名页面,用户填好的表单需要被工作人员收到,一想到把数据存数据库,还需要给工作人员写一个管理页面就觉得很麻烦 ...

  6. 项目中初试PHP单元测试

    只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...

  7. VPS -Digital Ocean -初试以及VPN的搭建

    首先恭喜你找到这篇博客,它会带你走出困境. 题外话(请忽略):一直以来想搞一个VPS,终于在自己的刺激下试了一下Digital Ocean,还没有使用很长时间不做太多评论,唯一给我的感觉是各种操作还算 ...

  8. 初试微信小程序

    2016年11月3日,微信小程序终于公测了,大家可以正式开发了.早在这之前,应公司要求,和同事就早早的试了一下微信小程序的开发,特此记录一下: 微信官方小程序文档:https://mp.weixin. ...

  9. nodejs & nodemailer

    nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...

随机推荐

  1. 推荐eclipse velocity一款插件 --- veloeclipse

    vm文件在eclipse展示很丑,关键字没有颜色之差.这里,推荐一款极其好用的velocity插件  -- veloeclipse 在 Eclipse 版本 4.5.0, 离线安装 Veloeclip ...

  2. 清空session的方法

    清空session的方法,常用来注销的时候清空所有的session. 方法一: Enumeration e=session.getAttributeNames(); while(e.hasMoreEl ...

  3. 【转载】如何将Emmet安装到到 Sublime text 3?

    http://www.cnblogs.com/tinyphp/p/3217457.html 看清楚哦~~这是Sublime text 3不是2的版本,两者的安装还是有区别的,下面的方法是我感觉比较简单 ...

  4. appDelegate中的委托协议方法以及使用观察者模式获取其触发方法

    //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 - (void)applicationWillResignActive:(UIApplication *)appli ...

  5. 在WWDC 2014上,没提到的iOS 8 八大新特性

    今天凌晨1点,36氪如约为大家研磨出WWDC 2014全程 "贴身直播"(我不得不佩服牺牲个人时间,熬夜为大家奉上好文的5位氪星人:JasonZheng.WANGJINGYU.pa ...

  6. 在iOS中怎样创建可展开的Table View?(下)

    接上篇:在iOS中怎样创建可展开的Table View?(上) 展开和合拢 我猜这部分可能是你最期望的了,因为本次教程的目标将会在在部分实现.第一次我们设法让顶层的cell,在它们点击的时候展开或者合 ...

  7. 全面解析java注解

    一.注解概述       1.学习注解能够读懂别人的代码,特别是框架相关的代码       2.让自己的编程更加简洁,代码更加清晰       3.让别人高看一眼,会使用自定义注解来解决问题     ...

  8. VMware:虚拟机磁盘空间不足怎么办

    前言: 虚拟机里一般我们用的虚拟磁盘,在电脑上是一个或多个文件,随着软件和数据的增多,有时也会提示磁盘空间不足. 那么,虚拟机磁盘空间不足如何处理呢?   一:调整磁盘分区大小; 若只是提示相应磁盘分 ...

  9. debian非正常关机进不了图形界面的解决方法

    昨天调试一个程序的时候,把界面设置成了POPUP方式,结果触发断点的时候,界面不能最小化,程序就死到那了,动不了,没办法只好按电源了,结果启动的时候提示 An automatic file syste ...

  10. linux 学习笔记 Linux内核的四大功能简介

    一 内存管理 默认情况下,运行在Linux系统上的每个进程都有各自的内存页面:进程不能访问其他进程正在使用的内存页面. 内核维护着自己的内存区域 用户进程不能访问内核进程的内存 可以创建一些共享内存页 ...