sendcloud-postman
Version:
util to send emails
140 lines (126 loc) • 5.5 kB
JavaScript
var request = require('request');
var util = require('util');
// config
var MAILADDR = 'https://sendcloud.sohu.com/webapi/mail.send.xml'
// table of all usages
var SUBMAILS = {
'forgetPassword': {
subject: 'Qisense 密码找回',
submail: 'postmaster@subTrigger01.sendcloud.org',
template: forgetPasswordFn
},
'newRegister': {
subject: '欢迎使用Qisense系统',
submail: 'postmaster@subTrigger01.sendcloud.org',
template: newUserRegisterFn
},
'userSuggestion': {
subject: 'qisense用户建议',
submail: 'postmaster@subTrigger01.sendcloud.org',
template: userSuggestion
}
}
// core
function Postman (msgtype, apikey) {
// api key is secret, you need to pass it in with argument
this.apikey = apikey;
// job of postman
this.mailset = SUBMAILS[msgtype];
};
Postman.prototype.send = function (mailInfo,
username,
sessionKey,
localhost,
cb) {
/*
@mailInfo:
to
from
fromname
*/
// append info
mailInfo.api_key = this.apikey;
mailInfo.api_user = this.mailset.submail;
mailInfo.subject = this.mailset.subject;
// set html content
mailInfo.html = this.mailset.template(localhost , username, sessionKey );
console.log(mailInfo.html)
// send mail post
request.post(
MAILADDR,
{
form: mailInfo
},
function (err, res, body) {
if (!err && res.statusCode === 200) {
console.log("posting to sendcloud success");
cb(null, 'success');
} else {
cb(err);
}
}
)
}
// format date in chinese
var Now = function () {
var formatter = "%d年%d月%d日-%d时%d分",
t = new Date();
return util.format(formatter,
t.getFullYear(),
t.getMonth() + 1,
t.getDate(),
t.getHours(),
t.getMinutes()
)
}
// templates
function forgetPasswordFn(site, username, sessionKey) {
return '<p>尊敬的客户:</p>' +
' <p>您好!</p> <p>您在 ' +
Now() +
'申请重置密码,</p>' +
'<p><span style="font-size: 12.7272720336914px; line-height: 20.8000011444092px;">请点击下面的链接修改用户'+
username +
'</span></p>'+
'<p>http://'+
site +
'/#/reset_password?token='+
sessionKey +
';</p>'+
'<p><span style="font-size: 13px; line-height: 1.6em;">为了保证您帐号的安全性,该链接有效期为30分钟,并且点击一次后将失效!</span></p> <p>Qisense 运营团队</p> <p> </p> <p>系统发信, 请勿回复</p> <p>Qisense官方网站: Qisense.com</p> <p> </p>'
}
function newUserRegisterFn(site, username, password) {
return '<p>尊敬的客户:</p>' +
' <p>您好!</p> '+
' <p>感谢您注册使用Qisense智能系统, 以下是您的账号信息:</p>' +
'<p>账号名: ' +
username +
'</p>'+
'<p>初始密码: '+
password +
'</p>'+
'<p>请于登录后修改您的密码,谢谢!</p>' +
'<p>登录点击:' +
site +
'</p>' +
'<p> </p>' +
'<p>Qisense 运营团队</p>' +
'<p>系统发信, 请勿回复</p>' +
'<p>Qisense官方网站: Qisense.com</p>'
}
function userSuggestion (email, cellphone, suggestion) {
return '<p>qisense 用户邮箱:</p>' +
'<p>'+ email + '</p>' +
'<p>qisense 用户手机:</p>'+
'<p>' + cellphone +'</p>'+
'<p>qisense 用户建议:</p>' +
'<p>' + suggestion + '</p>' +
'<div style="display:none;">' +
'<p><span style="color: rgb(17, 17, 17); font-family: Helvetica, Arial, sans-serif; font-size: 12.8000001907349px; line-height: 16.8479995727539px;">曾经有一份真诚的爱情放在我面前,我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此。你的剑在我的咽喉上割下去吧!不用再犹豫了!如果上天能够给我一个再来一次的机会,我会对那个女孩子说三个字:我爱你。如果非要在这份爱上加上一个期限,我希望是……一万年…… </span></p>' +
'<p><span style="color: rgb(17, 17, 17); font-family: Helvetica, Arial, sans-serif; font-size: 12.8000001907349px; line-height: 16.8479995727539px;">你想要啊?悟空,你要是想要的话你就说话嘛,你不说我怎么知道你想要呢,虽然你很有诚意地看着我,可是你还是要跟我说你想要的。你真的想要吗?那你就拿去吧!你不是真的想要吧?难道你真的想要吗?…… </span><br style="color: rgb(17, 17, 17); font-family: Helvetica, Arial, sans-serif; font-size: 12.8000001907349px; line-height: 16.8479995727539px;" />' +
'<span style="color: rgb(17, 17, 17); font-family: Helvetica, Arial, sans-serif; font-size: 12.8000001907349px; line-height: 16.8479995727539px;">你想要啊?你想要说清楚不就行了吗?你想要的话我会给你的,你想要我当然不会不给你啦!不可能你说要我不给你,你说不要我却偏要给你,大家讲道理嘛!现在我数三下,你要说清楚你要不要…… </span></p>'+
'</div>' +
'<p> </p>' +
'<p> </p>'
}
module.exports = Postman;