Esempio n. 1
0
        public ActionResult SendEmail(SendEmailModel model)
        {
            ReturnToClient returnToClient = new ReturnToClient();
            string         strEndToAddr   = string.Empty;

            try
            {
                if (model.SenderAddr.IsNullOrEmpty() || model.SenderDisplayName.IsNullOrEmpty() ||
                    model.ToAddr.IsNullOrEmpty() || model.Subuject.IsNullOrEmpty())
                {
                    throw new Exception("数据参数错误,确保发件人信息,主题,收件人邮箱 信息完整");
                }

                //根据发件人和发件人邮箱获取 密码和host
                var senderInfo = senderAddrInfoList.FirstOrDefault(a => a.SenderAddr == model.SenderAddr && a.SenderDisplayName == model.SenderDisplayName);
                if (senderInfo == null)
                {
                    throw new Exception("数据参数错误");
                }

                Regex r = new Regex(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");

                model.EmailBody = model.EmailBody.Replace("data-custom=\"actionCol\"", " style=\"display:none;\" ");
                model.ColNames  = model.ColNames.Replace("data-custom=\"actionCol\"", " style=\"display:none;\" ");

                var emailBodyArr   = model.EmailBody.Split(new string[] { "$$$" }, StringSplitOptions.RemoveEmptyEntries);
                var emailToAddrArr = model.ToAddr.Split(new string[] { "$$$" }, StringSplitOptions.RemoveEmptyEntries);

                for (int i = 0; i < emailBodyArr.Length; i++)
                {
                    strEndToAddr = emailToAddrArr[i];
                    if (!r.IsMatch(emailToAddrArr[i]))
                    {
                        throw new Exception("邮箱地址错误");
                    }
                    string body = "<table border=\"1\" align=\"left\" cellpadding=\"3\" cellspacing=\"0\">" +
                                  model.ColNames + emailBodyArr[i] +
                                  "</table>";


                    EmailHelper.SendPrivateMail(model.SenderAddr, senderInfo.Password, model.SenderDisplayName, senderInfo.Host, model.Subuject, emailToAddrArr[i], body);
                }
            }
            catch (Exception ex)
            {
                returnToClient.Result    = -1;
                strEndToAddr             = strEndToAddr.IsNullOrEmpty() ? strEndToAddr: "在给" + strEndToAddr + "发送时";
                returnToClient.ErrorDesc = strEndToAddr + "[" + ex.Message + "]";
            }
            string data = JsonHelper.ToJson(returnToClient);

            return(Json(data));
        }
Esempio n. 2
0
        private string Excute(string httpJsonStr)
        {
            //发送平台请求
            string httpResponseJson = webUtils.DoPost(serverUrl, httpJsonStr, charset);
            //平台响应数据解密AES
            var respJsonObj = JsonConvert.DeserializeObject <HttpResponseJson>(httpResponseJson);

            if (respJsonObj.status == "200")   //请求成功
            {
                //平台响应数据解密
                string dataDecrypt = Encrypt.AesDencrypt(encyptKey, respJsonObj.data.data, charset);
                //平台响应数据验签
                bool checkSignResult = Signature.RSASignCheck(dataDecrypt, respJsonObj.data.sign,
                                                              platformPublicKey, charset);
                if (checkSignResult)  //验签成功
                {
                    return(dataDecrypt);
                }
                else   //验签失败
                {
                    ReturnToClient re = new ReturnToClient
                    {
                        status  = "500",
                        message = "数据不合法",
                    };
                    return(JsonConvert.SerializeObject(re));
                }
            }
            else   //请求失败
            {
                ReturnToClient re = new ReturnToClient
                {
                    status  = respJsonObj.status,
                    message = respJsonObj.message
                };
                return(JsonConvert.SerializeObject(re));
            }
        }