Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. using System.Net.Mail;
  2.  
  3. namespace TeamProject.Bot.Services.Commands.Email
  4. {
  5. public class EmailMessager : IEmailMessager
  6. {
  7. private readonly string _msgFrom;
  8. private readonly string _msgPassword;
  9.  
  10. private readonly string _userUrl;
  11. private readonly string _userFirstName;
  12. private readonly string _userSecondName;
  13. private const char Delimiter = '/';
  14.  
  15. public EmailMessager(string userUrl, string userFirstName, string userSecondName)
  16. {
  17. var data = GetLoginAndPasswordOfTheEmail().Split(Delimiter);
  18. _msgFrom = data[0];
  19. _msgPassword = data[1];
  20. _userUrl = userUrl;
  21. _userFirstName = userFirstName;
  22. _userSecondName = userSecondName;
  23. }
  24.  
  25. public string Send(string data)
  26. {
  27. if (string.IsNullOrEmpty(data))
  28. {
  29. return ResponseToTheWrongCommand.Emailer;
  30. }
  31. var result = data.Split(Delimiter);
  32. switch (result.Length)
  33. {
  34. case 3:
  35. return Send(result[0], result[1], result[2]);
  36. case 5:
  37. return Send(result[0], result[1], result[2], result[3], result[4]);
  38. }
  39. return ResponseToTheWrongCommand.Emailer;
  40. }
  41.  
  42. public string Send(string msgTo, string msgSubject, string msgBody)
  43. {
  44. const string enter = "\n";
  45. const string warning = "WARNING! This email message send by bot TCN.";
  46. const string responsible = "TCN is not responsible for the content of the e-mail.";
  47.  
  48. var user = string.Concat("Content that contains the message was written by ", _userFirstName, " ", _userSecondName, ".");
  49. var url = string.Concat("Link : ", _userUrl);
  50.  
  51. msgBody = string.Concat(warning, enter, user, enter, url, enter, enter, msgBody, enter, enter, responsible);
  52.  
  53. return Send(_msgFrom, _msgPassword, msgTo, msgSubject, msgBody);
  54. }
  55.  
  56. public string Send(string msgFrom, string msgPassword, string msgTo, string msgSubject, string msgBody)
  57. {
  58.  
  59. if (msgFrom.Equals("") || msgPassword.Equals("") || msgTo.Equals("") || msgSubject.Equals("") || msgBody.Equals(""))
  60. {
  61. return ResponseToTheWrongCommand.Emailer;
  62. }
  63.  
  64. const char seperator = '@';
  65. var emailSplits = msgFrom.Split(seperator);
  66. var smtp = string.Concat("smtp.", emailSplits[emailSplits.Length - 1]);
  67. var mail = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
  68. var client = new SmtpClient(smtp)
  69. {
  70. Port = 587,
  71. Credentials = new System.Net.NetworkCredential(msgFrom, msgPassword),
  72. EnableSsl = true
  73. };
  74. try
  75. {
  76. client.Send(mail);
  77. }
  78. catch (SmtpException)
  79. {
  80. return ResponseToTheWrongCommand.Emailer;
  81. }
  82. var responce = string.Concat("The email to ", msgTo, " was sended access");
  83. return responce;
  84. }
  85.  
  86. public string GetLoginAndPasswordOfTheEmail()
  87. {
  88. return "mail/password";
  89. }
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement