|
var restify = require('restify');
|
var path=require("path")
|
var ip_addr = '127.0.0.1';
|
var port = '8900';
|
var maxLength=5*1024 *1024; //最大请求
|
var server = restify.createServer({
|
name : "sendmail"
|
});
|
var fs=require("fs");
|
const { getTaskReportInfoAsync,getTaskReportInfoWeekAsync } = require('./mail/task');
|
var plugins=restify.plugins;
|
server.use(plugins.acceptParser(server.acceptable));
|
server.use(plugins.queryParser());
|
server.use(plugins.bodyParser({ maxBodySize:maxLength }));
|
server.listen(port ,ip_addr, function(){
|
console.log('%s listening at %s ', server.name , server.url);
|
});
|
|
var PATH="/mail";
|
function responseOK(res,result,data,info){
|
return res.send({result:result,message:info,data:data});
|
|
}
|
|
server.post({path : PATH+"/sendattach" , version: '0.0.1'} ,sendMailAttach);
|
async function sendMailAttach(req, res , next){
|
res.setHeader('Access-Control-Allow-Origin','*');
|
|
var query = req.body;
|
if(!query){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 0")
|
}
|
if(req.getContentLength()>=maxLength){
|
return responseOK(res,false,null,"附件内容大小,超过了5M")
|
}
|
console.log(query);
|
|
var account=query.account;
|
var receivename=query.receivename; //接收人名称
|
var toemail=query.toemail;
|
var title=query.title;
|
var content=query.content;
|
if(!account ||!toemail ||!title ||!content || !receivename){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -1")
|
}
|
if(account!="rushmail"){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -2")
|
}
|
var attachment=[]
|
console.log(req.files)
|
if(req.files){
|
var keys=Object.keys(req.files);
|
for(var key of keys){
|
var sourceStr=req.files[key].path;
|
var destStr=path.join("./temp/",key);
|
fs.copyFileSync(sourceStr,destStr);
|
attachment.push(destStr);
|
}
|
|
}
|
if(attachment.length>0){
|
var {sendWidthAttachmentAsync} = require("./sendmail");
|
var ret=await sendWidthAttachmentAsync(receivename,toemail,title,content,attachment)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
//发附件
|
|
if(ret.status){
|
for(var att of attachment){
|
fs.unlinkSync(att);
|
}
|
return responseOK(res,true,{taskid:ret.data},"发送成功")
|
}else{
|
return responseOK(res,true,null,"发送失败"+ret.data);
|
}
|
|
}else{
|
var {sendAsync} = require("./sendmail");
|
var ret=await sendAsync(receivename,toemail,title,content)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
|
if(ret.status){
|
return responseOK(res,true,{taskid:ret.data},"发送成功")
|
}else{
|
return responseOK(res,true,null,"发送失败"+ret.data)
|
}
|
}
|
|
}
|
|
|
|
server.post({path : PATH+"/send" , version: '0.0.1'} ,sendMail);
|
async function sendMail(req, res , next){
|
res.setHeader('Access-Control-Allow-Origin','*');
|
var query = req.body;
|
if(!query){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 0")
|
}
|
|
var account=query.account;
|
var receivename=query.receivename; //接收人名称
|
var toemail=query.toemail;
|
var title=query.title;
|
var content=query.content;
|
if(!account ||!toemail ||!title ||!content || !receivename){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -1")
|
}
|
if(account!="rushmail"){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -2")
|
}
|
var attachment=query.attachment;
|
if(attachment){
|
if(attachment instanceof Array){
|
for(var att of attachment){
|
if(!fs.existsSync(att)){
|
// console.log("attachments")
|
return responseOK(res,false,null,"附件不存在!"+att);
|
}
|
}
|
}else{
|
if(!fs.existsSync(attachment)){
|
return responseOK(res,false,null,"附件不存在!");
|
}
|
}
|
|
var {sendWidthAttachmentAsync} = require("./sendmail");
|
var ret=await sendWidthAttachmentAsync(receivename,toemail,title,content,attachment)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
//发附件
|
|
if(ret.status){
|
return responseOK(res,true,{taskid:ret.data},"发送成功")
|
}else{
|
return responseOK(res,true,null,"发送失败"+ret.data);
|
}
|
}else{
|
var {sendAsync} = require("./sendmail");
|
var ret=await sendAsync(receivename,toemail,title,content)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
|
if(ret.status){
|
return responseOK(res,true,{taskid:ret.data},"发送成功")
|
}else{
|
return responseOK(res,true,null,"发送失败"+ret.data)
|
}
|
}
|
|
|
}
|
|
server.post({path : PATH+"/report" , version: '0.0.1'} ,searchReport);
|
async function searchReport(req, res , next){
|
res.setHeader('Access-Control-Allow-Origin','*');
|
var query = req.body;
|
if(!query){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 0")
|
}
|
// console.log(req.body)
|
var date=query.date;
|
var account=query.account;
|
if(account!="rushmail"){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -4")
|
}
|
if(!date){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -5")
|
}
|
var ret=await getTaskReportInfoAsync(date)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
if(ret.status)
|
return responseOK(res,true,ret.data,"获取报告成功");
|
else
|
return responseOK(res,false,null,"获取报告失败"+ret.data);
|
}
|
|
|
server.post({path : PATH+"/reportweek" , version: '0.0.1'} ,searchReportWeek);
|
|
async function searchReportWeek(req, res , next){
|
res.setHeader('Access-Control-Allow-Origin','*');
|
var query = req.body;
|
if(!query){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 0")
|
}
|
// console.log(req.body)
|
|
|
var account=query.account;
|
if(account!="rushmail"){
|
return responseOK(res,false,null,"参数有误,请输入正确的参数 -4")
|
}
|
//一周内的
|
var date=new Date();
|
var ret=await getTaskReportInfoWeekAsync(date)
|
.then((e)=>{return {status:true,data:e}})
|
.catch((e)=>{return {status:false,data:e}})
|
if(ret.status)
|
return responseOK(res,true,ret.data,"获取报告成功");
|
else
|
return responseOK(res,false,null,"获取报告失败"+ret.data);
|
}
|