You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.6 KiB

4 years ago
  1. using Apewer;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Net.Mail;
  5. using System.Text;
  6. namespace Apewer.Network
  7. {
  8. internal class MailMethods
  9. {
  10. public static MailRecord Send(MailClient client, MailMessage message)
  11. {
  12. var record = new MailRecord();
  13. record.Action = "Send";
  14. record.Client = Json.From(client == null ? new MailClient() : client).ToString();
  15. record.Message = (message == null ? new MailMessage() : message).ToJson().ToString();
  16. var smtp = null as System.Net.Mail.SmtpClient;
  17. var mail = null as System.Net.Mail.MailMessage;
  18. try
  19. {
  20. smtp = client.ToInstance();
  21. mail = message.ToInstance();
  22. smtp.Send(mail);
  23. record.Status = "Ok";
  24. }
  25. catch (Exception ex)
  26. {
  27. record.Status = "Exception";
  28. record.Exception = ex;
  29. record.Error = ex.ToString();
  30. }
  31. if (smtp != null)
  32. {
  33. #if !NET20
  34. smtp.Dispose();
  35. #endif
  36. }
  37. if (mail != null) mail.Dispose();
  38. return record;
  39. }
  40. public static MailRecord Send(MailClient client, string sender, string receiver, string content, string title)
  41. {
  42. var message = new MailMessage();
  43. message.Sender = new MailAddress(sender);
  44. message.Receiver.Add(new MailAddress(receiver));
  45. message.Content = content;
  46. message.Title = title;
  47. return Send(client, message);
  48. }
  49. }
  50. }