/// <summary> /// 新增 /// </summary> public int Insert(EmailInfoEntity model) { Dictionary <string, object> dic = new Dictionary <string, object>(); if (model.EmailTitle != null) { dic["EmailTitle"] = model.EmailTitle; } //dic["EmailCreateTime"] = model.EmailCreateTime; //dic["EmailLastTime"] = model.EmailLastTime; if (model.EmailFilePath != null) { dic["EmailFilePath"] = model.EmailFilePath; } dic["EmailState"] = model.EmailState; dic["EmailStartSendTime"] = model.EmailStartSendTime; dic["TotalQty"] = model.TotalQty; dic["EmailStartSendTime"] = model.EmailStartSendTime; return(SQLHelperFactory.Instance.QueryForObjectByT <int>("Insert_emailinfo", dic)); }
/// <summary> /// 修改 /// </summary> public bool Update(EmailInfoEntity model) { Dictionary <string, object> dic = new Dictionary <string, object>(); dic["EmailID"] = model.EmailID; //if (model.EmailTitle != null) //{ // dic["EmailTitle"] = model.EmailTitle; //} //dic["EmailCreateTime"] = model.EmailCreateTime; //dic["EmailLastTime"] = model.EmailLastTime; //if (model.EmailFilePath != null) //{ // dic["EmailFilePath"] = model.EmailFilePath; //} dic["FailQty"] = model.FailQty; dic["EmailState"] = model.EmailState; //dic["EmailStartSendTime"] = model.EmailStartSendTime; return(SQLHelperFactory.Instance.ExecuteNonQuery("Update_emailinfo", dic) > 0); }
private void BtnOperation_Click(object sender, RoutedEventArgs e) { Button bt = sender as Button; if (bt != null && bt.Tag != null) { var emailInfo = EmailInfoList.FirstOrDefault(p => p.EmailID == (int)bt.Tag); if (emailInfo != null && emailInfo.EmailID > 0) { EmailInfoEntity entity = new EmailInfoEntity(); entity.EmailID = emailInfo.EmailID; switch (emailInfo.EmailState) { case 0: //設置停止發送 entity.EmailState = 4; //修改密送記錄的郵件狀態 ESBAR_Repository.Update(emailInfo.EmailID, 2, 0); break; case 2: //設置開始發送 entity.EmailState = 0; break; case 4: //設置繼續發送 entity.EmailState = 0; //修改密送記錄的郵件狀態 ESBAR_Repository.Update(emailInfo.EmailID, 0, 2); break; } EI_Repository.Update(entity); GetList(); } } }
/// <summary> /// 發送郵件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnSend_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(htmlEditor.ContentHtml)) { "郵件内容不能爲空".ShowDialog(); return; } DateTime?startDatetime = null; if ((!dpSendDate.SelectedDate.HasValue && tpSendTime.SelectedTime.HasValue) || (dpSendDate.SelectedDate.HasValue && !tpSendTime.SelectedTime.HasValue)) { "請選擇發送日期/時間".ShowDialog(); return; } if (dpSendDate.SelectedDate.HasValue && tpSendTime.SelectedTime.HasValue) { startDatetime = dpSendDate.SelectedDate.Value; startDatetime = startDatetime.Value.AddHours(tpSendTime.SelectedTime.Value.Hour); startDatetime = startDatetime.Value.AddMinutes(tpSendTime.SelectedTime.Value.Minute); } #region 判斷有沒填寫發件人抄送人 if (_SendMailList.Count == 0) { "你還沒填寫發件人!".ShowDialog(); return; } if (_BccMailList.Count == 0) { "你還沒填寫抄送人!".ShowDialog(); return; } #endregion EmailInfoEntity email = new EmailInfoEntity(); email.EmailTitle = tbTheme.Text; email.EmailFilePath = htmlEditor.ContentHtml; email.EmailState = 2;//新增的時候,是草稿狀態;等新增完成會修改狀態為0 email.TotalQty = _BccMailList.Count; if (startDatetime.HasValue) { email.EmailStartSendTime = startDatetime.Value; } Thread thread = new Thread(s => { Stopwatch st = new Stopwatch(); st.Start(); int bccTotal = _BccMailList.Count; this.Dispatcher.BeginInvoke(MainWindow.ShowMessage, string.Format("正在新增邮件,进度:{0}/{1},耗時:{2}秒", 0, bccTotal, 0)); //新增郵件 int EmailID = ER_Repository.Insert(email); if (EmailID <= 0) { return; } foreach (var send in _SendMailList) { EmailSendAccountEntity entity = new EmailSendAccountEntity(); entity.EmailID = EmailID; entity.EmailAccountID = send.EmailAccountID; ESR_Repository.Insert(entity); } //LogHelper.Info("插入發送信息時間:" + DateTime.Now + ",插入密送人數量:" + _BccMailList.Count); int bccCount = 0; List <EmailSendBccAccountEntity> sendBcc = new List <EmailSendBccAccountEntity>(); foreach (var bcc in _BccMailList) { bccCount++; EmailSendBccAccountEntity entity = new EmailSendBccAccountEntity(); entity.EmailID = EmailID; entity.EmailBccAccountID = bcc.EmailBccAccountID; entity.EmailSendBccAccountState = 0; sendBcc.Add(entity); if (bccCount > 100) { ESBR_Repository.InsertBatch(sendBcc); this.Dispatcher.BeginInvoke(MainWindow.ShowMessage, string.Format("新增郵件中,進度:{0}/{1},耗時:{2}秒", bccCount, bccTotal, st.ElapsedMilliseconds / 1000)); sendBcc.Clear(); } } if (sendBcc.Count > 0) { ESBR_Repository.InsertBatch(sendBcc); } email.EmailID = EmailID; email.EmailState = 0; ER_Repository.Update(email); st.Stop(); this.Dispatcher.BeginInvoke(MainWindow.ShowMessage, string.Format("新增邮件完成,进度:{0}/{1},耗時:{2}秒", bccCount, bccTotal, st.ElapsedMilliseconds / 1000)); _SendMailList.Clear(); _BccMailList.Clear(); }); thread.Start(); "正在後臺進行郵件新建,將會關閉當前窗口,草稿狀態==正在創建郵件中".ShowDialog(); this.Dispatcher.BeginInvoke(MainWindow.GotoPage, "郵件管理"); ClearControl(); }
public static Boolean SendAlarmMail(IList<MoreThanTenDaysOrderInfoEntity> UnauditedOrNotOutStockList, string strMailFrom, string strMailAddress, string strCCMailAddress, string strMailSubject, string strMailTitle) { EmailInfoEntity mail = new EmailInfoEntity(); mail.MailFrom = strMailFrom; mail.CCMailAddress = strCCMailAddress; mail.MailAddress = strMailAddress; mail.MailSubject = strMailSubject; StringBuilder mailBody = new StringBuilder(); mailBody.Append(strMailTitle); mailBody.Append("<br>"); mailBody.Append("<table border=\"1\"><tr><td>订单编号</td><td>FP状态</td><td>订单状态</td><td>总金额</td><td>订单时间</td><td>付款方式</td><td>配送方式</td><td>收款状态</td><td>更新人</td><td>是否超过90天</td></tr>"); if (UnauditedOrNotOutStockList.Count > 0) { string CheckoutStatusName = string.Empty; string OrderStatusName = string.Empty; string FPStatus = string.Empty; foreach (MoreThanTenDaysOrderInfoEntity orderItem in UnauditedOrNotOutStockList) { #region 订单状态 if (orderItem.OrderStatus == 0) { OrderStatusName = "待审核"; } else if (orderItem.OrderStatus == 1) { OrderStatusName = "待出库"; } else if (orderItem.OrderStatus == 2) { OrderStatusName = "待支付"; } else if (orderItem.OrderStatus == 3) { OrderStatusName = "待主管审"; } #endregion #region FP状态设置 if (orderItem.IsFPSO.HasValue == false) { FPStatus = ""; } else if (orderItem.IsFPSO.Value == 0) { FPStatus = "正常单"; } else if (orderItem.IsFPSO.Value == 1) { FPStatus = "可疑订单"; } else if (orderItem.IsFPSO.Value == 2) { FPStatus = "串货订单"; } else if (orderItem.IsFPSO.Value == 3) { FPStatus = "炒货订单"; } #endregion #region 结账状态 if (orderItem.CheckoutStatus.HasValue == false) { CheckoutStatusName = ""; } else if (orderItem.CheckoutStatus == 1) { CheckoutStatusName = "已结账"; } else { CheckoutStatusName = "未结账"; } #endregion mailBody.Append("<tr>"); mailBody.Append("<td>" + orderItem.SysNo + " " + "</td>"); mailBody.Append("<td>" + FPStatus + " " + "</td>"); mailBody.Append("<td>" + OrderStatusName + " " + "</td>"); mailBody.Append("<td>" + orderItem.SOAmt + " " + "</td>"); mailBody.Append("<td>" + orderItem.OrderDate.ToString() + " " + "</td>"); mailBody.Append("<td>" + orderItem.PayTypeName + " " + "</td>"); mailBody.Append("<td>" + orderItem.ShipTypeName + " " + "</td>"); mailBody.Append("<td>" + CheckoutStatusName + " " + "</td>"); mailBody.Append("<td>" + orderItem.UpdateUserSysName + " " + "</td>"); mailBody.Append("<td>" + orderItem.IsMoreThan90Days + " " + "</td>"); mailBody.Append("</tr>"); } } mailBody.Append("</table>"); mail.MailBody = mailBody.ToString(); //把捞到的邮件数据插入表 MailBodyV31 mailBodyV31 = new Utility.Email.DataContracts.MailBodyV31(); try { MailHelper.SendMail2IPP3Internal(mailBodyV31); } catch (BusinessException e) { Console.WriteLine("错误原因" + e); } return true; }
static void Main(string[] args) { EmailInfoRepository ei = new EmailInfoRepository(); EmailInfoEntity info = ei.Get("27"); try { #region 设置基本信息 CDO.Message oMsg = new CDO.Message(); Configuration conf = new ConfigurationClass(); conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value = CdoSendUsing.cdoSendUsingPort; conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value = CdoProtocolsAuthentication.cdoBasic; conf.Fields[CdoConfiguration.cdoSMTPUseSSL].Value = false; conf.Fields[CdoConfiguration.cdoSMTPServer].Value = "smtp.sina.com";//必填,而且要真实可用 conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value = 25; conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value = "*****@*****.**"; conf.Fields[CdoConfiguration.cdoSendUserName].Value = "*****@*****.**"; //真实的邮件地址 conf.Fields[CdoConfiguration.cdoSendPassword].Value = "5e5d277c167bd275"; //为邮箱密码,必须真实 //5e5d277c167bd275 conf.Fields.Update(); oMsg.Configuration = conf; #endregion 设置基本信息 #region htmlbody string bodyStr = "test11"; List <string> strList = MailHelper.GetHtmlImageUrlList(bodyStr); Dictionary <string, string> dicImage = new Dictionary <string, string>(); foreach (var str in strList) { string key = Guid.NewGuid().ToString(); string newUrl = "cid:" + key; bodyStr = bodyStr.Replace(str, newUrl); dicImage.Add(key, str); } oMsg.HTMLBody = info.EmailFilePath; #endregion StringBuilder title = new StringBuilder(); title.Append("=?BIG5?B?"); title.Append(ToBase64("titleTest")); title.Append("?="); oMsg.Subject = title.ToString(); oMsg.From = "\"" + "River" + "\"" + "*****@*****.**"; ;//真实的邮件地址 #region BCC StringBuilder bccs = new StringBuilder(); bccs.Append("[email protected];"); oMsg.BCC = bccs.ToString(); #endregion BCC oMsg.HTMLBodyPart.Charset = "BIG5"; oMsg.Send(); } catch (Exception ex) { throw ex; } }
public void SendEmail(EmailInfoEntity emailInfo, EmailAccountEntity emailAccount, List <EmailSendBccAccountEntity> toMails) { try { #region 设置基本信息 CDO.Message oMsg = new CDO.Message(); Configuration conf = new ConfigurationClass(); conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value = CdoSendUsing.cdoSendUsingPort; conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value = CdoProtocolsAuthentication.cdoBasic; conf.Fields[CdoConfiguration.cdoSMTPUseSSL].Value = emailAccount.EmailAccountIsSSL == 1; conf.Fields[CdoConfiguration.cdoSMTPServer].Value = emailAccount.EmailAccountSMTP;//必填,而且要真实可用 conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value = emailAccount.EmailAccountSMTPPort; conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value = emailAccount.EmailAccountAddress; conf.Fields[CdoConfiguration.cdoSendUserName].Value = emailAccount.EmailAccountAddress; //真实的邮件地址 conf.Fields[CdoConfiguration.cdoSendPassword].Value = emailAccount.EmailAccountPassWord; //为邮箱密码,必须真实 conf.Fields.Update(); oMsg.Configuration = conf; #endregion 设置基本信息 #region htmlbody string bodyStr = emailInfo.EmailFilePath; List <string> strList = MailHelper.GetHtmlImageUrlList(bodyStr); Dictionary <string, string> dicImage = new Dictionary <string, string>(); foreach (var str in strList) { string key = Guid.NewGuid().ToString(); string newUrl = "cid:" + key; bodyStr = bodyStr.Replace(str, newUrl); dicImage.Add(key, str); } oMsg.HTMLBody = bodyStr; #endregion StringBuilder title = new StringBuilder(); title.Append("=?BIG5?B?"); title.Append(ToBase64(emailInfo.EmailTitle)); title.Append("?="); oMsg.Subject = title.ToString(); oMsg.From = "\"" + emailAccount.EmailAccountName + "\"" + emailAccount.EmailAccountAddress; ;//真实的邮件地址 #region BCC StringBuilder bccs = new StringBuilder(); foreach (EmailSendBccAccountEntity to in toMails) { try { //还要加上邮箱的正确性检验 if (!string.IsNullOrEmpty(to.EmailBccAccountAddress)) //&& MailHelper.IsEmail(to.EmailBccAccountInfo.EmailBccAccountAddress)) { bccs.Append(to.EmailBccAccountAddress + ";"); to.EmailSendBccAccountState = 1; to.Result = "成功"; } else { to.EmailSendBccAccountState = -1; to.Result = "收件箱地址不正确"; } } catch (Exception ex) { to.EmailSendBccAccountState = -1; to.Result = "收件箱地址不正确:" + ex.Message; } } oMsg.BCC = bccs.ToString(); #endregion BCC oMsg.HTMLBodyPart.Charset = "BIG5"; foreach (var imgUrl in dicImage) { oMsg.AddRelatedBodyPart(imgUrl.Value, imgUrl.Key, CdoReferenceType.cdoRefTypeId); } lock (SendLock) { Constants.SleepInterval(Constants.SendWaitTime); LogHelper.Debug(string.Format("CDOSendEmail 发送邮件开始: 发件箱【{0}:{1}】发送邮件【{2} ->{3}】", emailAccount.EmailAccountID, emailAccount.EmailAccountAddress, emailInfo.EmailID, emailInfo.EmailTitle)); oMsg.Send(); LogHelper.Debug(string.Format("CDOSendEmail 发送邮件完成: 发件箱【{0}:{1}】发送邮件【{2} ->{3}】完成", emailAccount.EmailAccountID, emailAccount.EmailAccountAddress, emailInfo.EmailID, emailInfo.EmailTitle)); } } catch (Exception ex) { LogHelper.Error(string.Format("CDOSendEmail 发送邮件异常: 发件箱【{0}:{1}】发送邮件【{2} ->{3}】Exception:{4}", emailAccount.EmailAccountID, emailAccount.EmailAccountAddress, emailInfo.EmailID, emailInfo.EmailTitle, ex.Message), ex); throw ex; } }