EmailMsgSendHandler.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net.Mail;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using Abp.Dependency;
  9. using Abp.Net.Mail;
  10. using Nito.Disposables;
  11. using ShwasherSys.Common.Dto;
  12. namespace ShwasherSys.Common
  13. {
  14. public class EmailMsgSendHandler: ISingletonDependency
  15. {
  16. public EmailMsgSendHandler(IEmailSender emailSender)
  17. {
  18. EmailSender = emailSender;
  19. MsgListenerObj = new MsgListener<EmailMsg>();
  20. MsgListenerObj.SendMsg += MsgListenerObj_SendMsg;
  21. }
  22. private void MsgListenerObj_SendMsg(EmailMsg msg)
  23. {
  24. try
  25. {
  26. Thread.Sleep(2000);
  27. MailMessage mail = new MailMessage
  28. {
  29. IsBodyHtml = msg.IsHtml, Body = msg.MsgContent, Subject = msg.MsgTitle
  30. };
  31. var toEmails = msg.ReceiveEmails.Split(',');
  32. foreach (var email in toEmails)
  33. {
  34. mail.To.Add(email);
  35. }
  36. EmailSender.Send(mail);
  37. }
  38. catch (Exception e)
  39. {
  40. this.LogError($"系统邮件发送异常!{e.Message}");
  41. }
  42. }
  43. protected IEmailSender EmailSender;
  44. private MsgListener<EmailMsg> MsgListenerObj;
  45. public void SendEmailMsg(EmailMsg input)
  46. {
  47. MsgListenerObj.AddSendMsg(input);
  48. }
  49. }
  50. }