contact.js 6.07 KB
var express = require('express');
var session = require('express-session');
const nodemailer = require('nodemailer');
var router = express.Router();
const EAMIL_USER = "service@leadstecgz.com";
const EMAIL_PASSWORD ="Lt12345678";
//const EMAIL_SMTP_SERVER = "smtp.qiye.aliyun.com";
const EMAIL_SMTP_SERVER = "smtp.exmail.qq.com";

const axios = require('axios');

//验证码部分
var app = express();
var svgCaptcha = require('svg-captcha');
//设置过期时间等参数,过期时间为1分钟
router.use(session({secret: 'keyboard cat', resave: false, saveUninitialized: true, cookie: {maxAge: 60000}}));

router.get('/api/getCaptcha', function(req, res, next) {
  //return getCaptcha();
  var captcha = svgCaptcha.create({  
      // 翻转颜色                                                          
      inverse: false,  
      // 字体大小  
      fontSize: 36,  
      // 噪声线条数  
      noise: 2,  
      // 宽度  
      width: 80,  
      // 高度  
      height: 30,  
    });  
    // 保存到session,忽略大小写  
    req.session.contactUsCaptcha = captcha.text.toLowerCase(); 
    res.setHeader('Content-Type', 'image/svg+xml');
    res.write(String(captcha.data));
    res.end();
    
});


/* Post Contact Form. */
router.post('/sendmail', function (req, res) {

    var captcha = req.body.captcha;    
    var bodyText = JSON.stringify(req.body).toLowerCase();
    var result = {};

    if (captcha != req.session.contactUsCaptcha) {
      result.errcode = 40001;
      result.errmsg = "wrong captcha";
    	res.send(result);
    } else if(bodyText.indexOf("sex") >= 0 || bodyText.indexOf("dating") >= 0) {    
      result.errcode = 40002;
      result.errmsg = "illegal text";
      res.send(result);
    } else {

        let mailOpts, smtpTrans;
        smtpTrans = nodemailer.createTransport({
          host: EMAIL_SMTP_SERVER,
          port: 465,
          secure: true,
          auth: {
            user: EAMIL_USER,
            pass: EMAIL_PASSWORD
          }
        });
        mailOpts = {
          from:  EAMIL_USER,
          to: "sales@leadstec.com",
          subject: 'Leadstec 官网留言',
          /*text: `${req.body.name} (${req.body.email}) says: ${req.body.message}`*/
          text: `Name:${req.body.name} \n Company:${req.body.company} \n Phone:${req.body.phone} \n Email:${req.body.email} \n Messages: ${req.body.message}`
        };
    
        smtpTrans.sendMail(mailOpts, function (error, response) {
          if (error) {
            result.errcode = 40003;
            result.errmsg = "contact failed:"+error.message;
            res.send(result);
          } else {
            result.errcode = 0;
            result.errmsg = "ok";
            res.send(result);
          }
        });
    }
    
  });
  
//负责发邮件和发erp等,另外需要两三个api,负责将参数处理
//需要看如何在node post数据
//注意邮箱目前还是自己的邮箱
router.post('/sendCustomerInfoToEmailAndErp', function (req, res, next) {
    
    console.log("in sendCustomerInfoToEmailAndErp: ");
    
    //无验证码则log google内容
    if (req.body.captcha==null) {
        console.log("none captcha");
        console.log("google header: "+req.headers);
        console.log("google body: "+req.body);
        res.send("none captcha");
    } else {
        var captcha = req.body.captcha;
        var bodyText = JSON.stringify(req.body).toLowerCase();
        var result = {};
        
        if (captcha != req.session.contactUsCaptcha) {
          result.errcode = 40001;
          result.errmsg = "wrong captcha";
            res.send(result);
        } else if(bodyText.indexOf("sex") >= 0 || bodyText.indexOf("dating") >= 0) {    
          result.errcode = 40002;
          result.errmsg = "illegal text";
          res.send(result);
        } else {
          //发送邮件和erp
          emailSend(req.body);
          erpSend(req.body);
        }
    }
});
  
function emailSend(body) {
    let mailOpts, smtpTrans;
    smtpTrans = nodemailer.createTransport({
      host: EMAIL_SMTP_SERVER,
      port: 465,
      secure: true,
      auth: {
        user: EAMIL_USER,
        pass: EMAIL_PASSWORD
      }
    });
    mailOpts = {
      from:  EAMIL_USER,
      to: "sales@leadstec.com",
      subject: 'Leadstec 官网留言',
      text: `Name:${body.name} \n Company:${body.company} \n Phone:${body.phone} \n Email:${body.email} \n Messages: ${body.message}`
    };

    smtpTrans.sendMail(mailOpts, function (error, response) {
      if (error) {
        result.errcode = 40003;
        result.errmsg = "contact failed:"+error.message;
        res.send(result);
      } else {
        result.errcode = 0;
        result.errmsg = "ok";
        res.send(result);
      }
    });
}
  
function erpSend(body) {
    var lead_name = body.name;
    var company_name = body.company;
    var email_id = body.email;
    var mobile_no = body.phone;
    var status = "Opportunity";    
    
    var data = {
        lead_name: lead_name,
        company_name: company_name,
        email_id: email_id,
        mobile_no: mobile_no,
        status: "Opportunity"
    };
    /*var data = {access_token:'41_chmBK5GZ4RvJg6y-M23qLC39LcLEWvu_B3w4k-0ySYaRrLH9iOKZbH5ss-aCQPwxp-CbIf2BqEnkbFd38rtXmz7GmsUknQSCB6uQ3TAglyj2Mezhld0_CALqtZvupa8DwGXVlH0j0y6SZPnpABLaAAAFGQ'}
    
    console.log("in erpSend"+JSON.stringify(data));
    axios.post('https://api.weixin.qq.com/cgi-bin/user/get', JSON.stringify({
      params: data,
    })).then((res) => {
        console.log(`Status1111: ${res.status}`);
        console.log('Body1111: ', res.data);
    }).catch((err) => {
        //目前报错Request failed with status code 403
        console.error("err1111"+err);
    });*/
   
    //注意header要与data分开放
    axios.post('http://erp.leadstecgz.com/api/resource/Lead', data, {      
        headers: {'Authorization': 'token 9c264725c0d1c08:fdbf83cd1a03e1c','Content-Type':'application/json'}//设置header信息
    }).then((res) => {
        console.log(`Status: ${res.status}`);
        console.log('Body: ', res.data);
    }).catch((err) => {
        console.error("err: "+err);
    });
}

module.exports = router;