Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. using MailKit.Net.Pop3;
  2. using MailKit.Net.Smtp;
  3. using MimeKit;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14.  
  15. namespace MailSender
  16. {
  17. public partial class Form1 : Form
  18. {
  19. public Form1()
  20. {
  21. InitializeComponent();
  22.  
  23. Thread recieverThread = new Thread(() =>
  24. {
  25. using (var client = new Pop3Client())
  26. {
  27. // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
  28. client.ServerCertificateValidationCallback = (s, c, h, e) => true;
  29.  
  30. Invoke((MethodInvoker)(() =>
  31. {
  32. listBox1.Items.Add($"Connecting to pop3 server");
  33. }));
  34.  
  35. client.Connect("pop.gmail.com", 995, true);
  36.  
  37. Invoke((MethodInvoker)(() =>
  38. {
  39. listBox1.Items.Add((client.IsConnected ? "Connected" : "Not connected"));
  40. listBox1.Items.Add("Logging in");
  41. }));
  42.  
  43. client.Authenticate("login", "password");
  44.  
  45. Invoke((MethodInvoker)(() =>
  46. {
  47. listBox1.Items.Add((client.IsAuthenticated ? "Authenticated" : "Not authenticated"));
  48. }));
  49.  
  50. // Получение сообщения по id
  51. /*MimeMessage curMessage = client.GetMessage(5);
  52. Invoke((MethodInvoker)(() =>
  53. {
  54. listBox1.Items.Add($"{curMessage.Date} {curMessage.Subject}");
  55. }));*/
  56.  
  57. // Получение всех сообщений
  58. //for (int i = 0; i < client.Count; i++)
  59. /*for (int i = client.Count - 1; i > 0; i--)
  60. {
  61. var message = client.GetMessage(i);
  62. Invoke((MethodInvoker)(() =>
  63. {
  64. listBox1.Items.Add($"Got message. Subject: {message.Subject}");
  65. }));
  66. }
  67. */
  68. // Помечение сообщения для удаления
  69. var message = client.GetMessage(1);
  70. Invoke((MethodInvoker)(() =>
  71. {
  72. listBox1.Items.Add($"Помечаем сообщение с темой {message.Subject} для удаления");
  73. }));
  74. client.DeleteMessage(1);
  75. Invoke((MethodInvoker)(() =>
  76. {
  77. listBox1.Items.Add($"Сообщение помечено для удаления");
  78. }));
  79.  
  80. client.Disconnect(true);
  81. }
  82.  
  83. Thread.Sleep(1000);
  84. });
  85.  
  86. recieverThread.Start();
  87. }
  88.  
  89. private void button1_Click(object sender, EventArgs e)
  90. {
  91. var message = new MimeMessage();
  92. message.From.Add(new MailboxAddress(textBox1.Text, ""));
  93. message.To.Add(new MailboxAddress(textBox4.Text, textBox2.Text));
  94. message.Subject = textBox3.Text;
  95.  
  96. message.Body = new TextPart("plain")
  97. {
  98. Text = richTextBox1.Text
  99. };
  100.  
  101. using (var client = new SmtpClient())
  102. {
  103. client.ServerCertificateValidationCallback = (s, c, h, t) => true;
  104.  
  105. listBox1.Items.Add("Connecting to smtp server");
  106. client.Connect("smtp.gmail.com", 465, true);
  107. listBox1.Items.Add((client.IsConnected ? "Connected" : "Not connected"));
  108.  
  109. listBox1.Items.Add("Logging in");
  110. client.Authenticate("loging", "password");
  111. listBox1.Items.Add((client.IsAuthenticated ? "Authenticated" : "Not authenticated"));
  112.  
  113. listBox1.Items.Add("Sending message");
  114. client.Send(message);
  115. listBox1.Items.Add("Message sent");
  116. client.Disconnect(true);
  117. }
  118. }
  119.  
  120. private void Form1_Load(object sender, EventArgs e)
  121. {
  122. listBox1.Items.Clear();
  123. }
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement