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)); }
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)); } }