smtp fibjs nodejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"use strict";
var net = require('net');
var fs = require('fs');
var name = "",//send-email-address
pwd = "",//email-password
host = "smtp.exmail.qq.com",
port = 25,
to = "";to-email-address
var argx = {
title: "test",
attachment: [{
name: "1.png",
path: "1.png"
}, {
name: "2.txt",
path: "2.txt"
}],
content: '内容'
}
send(argx)
function send(arg) {
var title = "test";
var f = fs.open("1.png");
var buffer = f.readAll();
var content = buffer.base64();
var f1 = fs.open("2.txt");
var content1 = f1.readAll().base64();
var _smtp = new net.Smtp();
_smtp.connect(host, port);
_smtp.hello();
_smtp.login(name, pwd);
_smtp.from(name);
var data = "from:" + name + "\r\n";
data += "to:" + to + "\r\n";
data += "subject:" + arg.title + "\r\n";
data += "MIME-Version: 1.0 \r\nContent-Type: multipart/mixed;\r\n "
data += "boundary=#qwertyuiop#;\r\n"
data += "\r\n--#qwertyuiop#\r\n"
data += "Content-Type: text/plain;charset=utf8\r\nContend˙t-Transfer-Encoding:7bit\r\n"
data += "\r\n" + arg.content + "\r\n"
arg.attachment.forEach(function(o) {
data += "\r\n--#qwertyuiop#\r\n"
data += "Content-Type: application/octet-stream;"
data += "name=" + o.name + "\r\n"
data += "Content-Transfer-Encoding: base64\r\n"
data += "\r\n" + fs.open(o.path).readAll().base64()
})
data += "\r\n--#qwertyuiop#\r\n"
f.dispose();
_smtp.to(to);
_smtp.data(data);
_smtp.quit();
}