Advertisement
Guest User

Untitled

a guest
Apr 11th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.90 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Configuration;
  6. using System.Net.Mail;
  7. using System.Net.Security;
  8. using System.Net.Sockets;
  9. using System.Security.Cryptography;
  10. using System.Text;
  11.  
  12. namespace Program
  13. {
  14. class Test
  15. {
  16. static void Main(string[] args)
  17. {
  18. int k;
  19. string response, username, pass, checkAnswer;
  20. byte[] receivedMessage=new byte[100];
  21. TcpClient client = new TcpClient("smtp.gmail.com", 465);
  22. //NetworkStream networkStream = client.GetStream();
  23. //string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
  24. //Stream stm = client.GetStream();
  25. SslStream ssl = new SslStream(client.GetStream());
  26. ssl.AuthenticateAsClient("smtp.gmail.com");
  27.  
  28.  
  29. //string login = Base64Encode(username, pass);
  30. //Console.WriteLine(login);
  31.  
  32. k = ssl.Read(receivedMessage, 0, 100);
  33. response = BytesToString(receivedMessage, k);
  34. Console.WriteLine(response);
  35. ASCIIEncoding asen = new ASCIIEncoding();
  36. checkAnswer = new string(response.Take(3).ToArray());
  37. Console.WriteLine(checkAnswer);
  38.  
  39. if (checkAnswer == "220")
  40. {
  41. byte[] ba = asen.GetBytes("HELO gmail \r\n");
  42. ssl.Write(ba, 0, ba.Length);
  43.  
  44. k = ssl.Read(receivedMessage, 0, 100);
  45. response = BytesToString(receivedMessage, k);
  46. Console.WriteLine(response);
  47.  
  48. checkAnswer = new string(response.Take(3).ToArray());
  49. Console.WriteLine(checkAnswer);
  50.  
  51. if (checkAnswer == "250")
  52. {
  53. Console.WriteLine("Iveskite el.pasta ir slaptazodi:");
  54. username = Console.ReadLine();
  55. pass = Console.ReadLine();
  56.  
  57. var command = "AUTH LOGIN";
  58. ba = asen.GetBytes(command + " \r\n");
  59. ssl.Write(ba, 0, ba.Length);
  60.  
  61. k = ssl.Read(receivedMessage, 0, 100);
  62. response = BytesToString(receivedMessage, k);
  63. Console.WriteLine(response);
  64.  
  65. var login64 = Base64Encode(username);
  66. ba = asen.GetBytes(login64 + "\r\n");
  67. ssl.Write(ba, 0, ba.Length);
  68. Console.WriteLine(login64);
  69.  
  70. k = ssl.Read(receivedMessage, 0, 100);
  71. response = BytesToString(receivedMessage, k);
  72. Console.WriteLine(response);
  73.  
  74. var pass64 = Base64Encode(pass);
  75. ba = asen.GetBytes(pass64 + "\r\n");
  76. ssl.Write(ba, 0, ba.Length);
  77. Console.WriteLine(pass64);
  78.  
  79. k = ssl.Read(receivedMessage, 0, 100);
  80. response = BytesToString(receivedMessage, k);
  81. Console.WriteLine(response);
  82.  
  83. Console.WriteLine("Iveskite siuntejo el.pasta:");
  84. var mailFrom = Console.ReadLine();
  85. command = "MAIL FROM:<" + mailFrom + ">";
  86. ba = asen.GetBytes(command + " \r\n");
  87. ssl.Write(ba, 0, ba.Length);
  88.  
  89. k = ssl.Read(receivedMessage, 0, 100);
  90. response = BytesToString(receivedMessage, k);
  91. Console.WriteLine(response);
  92.  
  93. Console.WriteLine("Iveskite adresato el.pasta:");
  94.  
  95. var rcptTo = Console.ReadLine();
  96. command = "rcpt to:<" + rcptTo + ">";
  97. ba = asen.GetBytes(command + " \r\n");
  98. ssl.Write(ba, 0, ba.Length);
  99.  
  100. k = ssl.Read(receivedMessage, 0, 100);
  101. response = BytesToString(receivedMessage, k);
  102. Console.WriteLine(response);
  103.  
  104. while (true)
  105. {
  106. Console.WriteLine("1-Prideti dar viena adresata\n2-Neprideti\n");
  107. int choice = Int32.Parse(Console.ReadLine());
  108. if (choice == 1)
  109. {
  110. Console.WriteLine("Iveskite adresato el.pasta:");
  111. rcptTo = Console.ReadLine();
  112. command = "rcpt to:<" + rcptTo + ">";
  113. ba = asen.GetBytes(command + " \r\n");
  114. ssl.Write(ba, 0, ba.Length);
  115.  
  116. k = ssl.Read(receivedMessage, 0, 100);
  117. response = BytesToString(receivedMessage, k);
  118. Console.WriteLine(response);
  119. }
  120.  
  121. if (choice == 2)
  122. {
  123. break;
  124. }
  125.  
  126. }
  127.  
  128. ba = asen.GetBytes("DATA \r\n");
  129. ssl.Write(ba, 0, ba.Length);
  130.  
  131. k = ssl.Read(receivedMessage, 0, 100);
  132. response = BytesToString(receivedMessage, k);
  133. Console.WriteLine(response);
  134.  
  135. Console.WriteLine("Iveskite laisko tema:");
  136. string sbj = Console.ReadLine();
  137.  
  138. Console.WriteLine("Rasykite laiska:");
  139. string message = Console.ReadLine();
  140. ba = asen.GetBytes("Subject: " + sbj + "\n" + message + "\r\n.\r\n");
  141. ssl.Write(ba, 0, ba.Length);
  142.  
  143. /* ba = asen.GetBytes("\r\n.\r\n");
  144. ssl.Write(ba, 0, ba.Length);*/
  145.  
  146. k = ssl.Read(receivedMessage, 0, 100);
  147. response = BytesToString(receivedMessage, k);
  148. Console.WriteLine(response);
  149.  
  150. ba = asen.GetBytes("QUIT \r\n");
  151. ssl.Write(ba, 0, ba.Length);
  152.  
  153. k = ssl.Read(receivedMessage, 0, 100);
  154. response = BytesToString(receivedMessage, k);
  155. Console.WriteLine(response);
  156. }
  157. }
  158. else
  159. {
  160. Console.WriteLine("Klaida prisijungiant i serveri!");
  161. }
  162. }
  163.  
  164. public static string BytesToString(byte[] bytes, int k)
  165. {
  166. var str = new StringBuilder();
  167. for (int i = 0; i < k; i++)
  168. if (bytes[i] != 13 && bytes[i] != 10)
  169. str.Append(Convert.ToChar(bytes[i]));
  170.  
  171. return str.ToString();
  172. }
  173.  
  174. public static string Base64Encode(string info)
  175. {
  176. var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(info);
  177. return System.Convert.ToBase64String(plainTextBytes);
  178. }
  179. }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement