web development blog

> 前端技术 Nodejs体验之邮件发送应用开发

Node.js 是javascript,它脱离浏览器运行在服务端的javascript,或者说运行在google的v8虚拟机上。不管你出于何目的,既然你盯上了它,想了解一下它的魅力,你就要不厌其烦的去码代码/调试。它贴着几个标签:非阻塞IO,单线程,事件驱动。我之所以会捣鼓nodejs,不单是因为它在网上出现的频率,而是我开发的邮件群发系统在应用过程中遇到问题,不得不寻找其他解决方案。

 

一、安装

nodejs下载:http://nodejs.org/download/

我的是window,下载的node-v0.10.3-x86.msi,安装成功的话,在cmd下看是否成功:

D:\>node -v
v0.10.2

D:\>npm -v
1.2.15

 

二、nodejs开发环境

如果你是一个前端开发人员,你一定不陌生。它和javascript一样,不同的是,以前的js是运行在浏览器,现在是运行在服务器端。功能模块化,有丰富的类库,只要要npm就可以对他们进行管理。

开发web应用,我选择的是exprss框架。你可以用它来创建一个node应用,它让nodejs开发变的非常方便。

有了web框架,也要有一个好的开发工具,我选择的是WebStorm6.0.1软件,可以直接创建nodejs基于express的项目,调试也非常方便。

心得:npm可以安装和删除,要注意不是直接在doc窗口随意输入命令行,而是要进入工程项目目录进行指令操作。你每安装一个类库,在项目文件夹下的node_modules目录可以找到它,而且还可以找到它的说明文档,详细说明如何使用它们。

 

三、邮件发送应用开发

我采用的是express web框架,和jade模版引擎,以及nodemailer类库结合实现。

服务端javascript:

/**
 * EDMPlan send Email
 * 2013.04.05
 */
var mail = require('nodemailer');
exports.send = function(req,res){
    var email = req.body.e,
        content = req.body.c;

    var smtpTransport = mail.createTransport("SMTP",{
        service:'Yahoo',
        auth: {
            user: "Yourname@domain.com",
            pass: "password"
        }
    });
    var mailOptions = {
        from: "Yourname@domain.com", // sender address
        to: email, // list of receivers
        subject: "Hello Node Send Email", // Subject line
        text: content, // plaintext body
        html: content // html body
    }
    smtpTransport.sendMail(mailOptions,function(error, response){
        res.set('Content-Type', 'text/plain');
        if(error){
            console.log(error);
            res.write('发送失败');
        }else{
            console.log("Message sent: " + response.message);
            res.write('发送成功');
        }
        res.end();
    })
}
//WebStorm 输出
Message sent: 250 OK , completed
POST /sendEmail 200 1178ms
{ [RecipientError: Can't send mail - all recipients were rejected] name: 'RecipientError' }
POST /sendEmail 200 414ms

源文件下载:nodejs 带进度提示的发送邮件,可以多个邮箱地址

提示:本例子只是初步体验nodejs发邮件功能,如果要用于实际中,自行优化处理。

 

扩展阅读:

Node入门:http://www.nodebeginner.org/index-zh-cn.html

Node官方api:http://nodejs.org/api/

Node中文api:http://docs.cnodejs.net/cman/

Express框架api:http://expressjs.com/api.html

Node常用模块推荐:http://blog.csdn.net/zzulp/article/details/8114540

-留言评论-

  • 留言载入中...

-拍砖-

 

首页|前端技术|编程/php|生活|关于我

Copyright © 2012 wmhfly.com