Доступ к Gmail через SSL

SMTP

Эта статья демонстрирует, как выполнить подключение к серверу Gmail и отправить электронное письмо с использованием протокола SMTP через SSL.

Подключение к серверу Gmail SMTP

Следующий фрагмент кода показывает, как подключиться к SMTP серверу с поддержкой SSL.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
SmtpClient client = new SmtpClient("smtp.gmail.com");
// Set username, Password, Port No, and SecurityOptions
client.Username = "your.email@gmail.com";
client.Password = "your.password";
client.Port = 587;

Отправка электронного сообщения

Код выше настраивает объект SMTPClient для подключения к серверу Gmail. Чтобы отправить сообщение, используя тот же объект клиента, создайте объект класса MailMessage и отправьте сообщение с помощью объекта SMTP клиента. Следующий фрагмент кода показывает, как задать свойства сообщения, например, тему, кому и текст:

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage msg = new MailMessage();
// Set From, To whom
msg.From = new MailAddress("user@gmail.com");
msg.To.Add(new MailAddress("user@gmail.com"));
// Set the subject, priority, Set the message bodies (plain text and HTML), and Add the attachment
msg.Subject = "subject";
msg.Priority = MailPriority.High;
msg.Body = "Please open with html browser";
msg.HtmlBody = "<bold>this is the mail body</bold>";
Attachment attachment = new Attachment(dataDir + "File.txt");
msg.Attachments.Add(attachment);
client.Send(msg);

IMAP

Эта статья показывает, как выполнить ряд действий на почтовом сервере с поддержкой SSL, используя протокол IMAP:

  • Подключиться к почтовому серверу.
  • Получить общее количество сообщений в почтовом ящике.
  • Сохранить сообщения локально.
  • Создать сообщение и добавить его в папку.

Подключение к почтовому серверу

Используйте объект класса ImapClient от Aspose.Email для подключения к почтовому серверу. Для установления соединения требуются адрес сервера, порт, имя пользователя и пароль. Gmail использует порт 993 для IMAP протокола, следующий фрагмент кода показывает, как подключиться к Gmail с использованием этого порта.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Connect to the Gmail server
ImapClient imap = new ImapClient("imap.gmail.com", 993, "user@gmail.com", "pwd");

Выбор папки и получение общего числа сообщений

Проверка папки Входящие - это наиболее частая задача при проверке электронной почты. С помощью Aspose.Email это можно сделать всего двумя простыми строками кода. Следующий фрагмент кода показывает, как получить доступ к папке Входящие и получить общее количество сообщений в папке.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
imap.SelectFolder(ImapFolderInfo.InBox);
Console.WriteLine(imap.CurrentFolder.TotalMessageCount + " messages found.");

Сохранение сообщений на локальный жесткий диск

После того, как папка была выбрана с помощью метода SelectFolder, используйте функцию ListMessages для получения списка всех сообщений в папке в объекте ImapMessagesInfoCollection. Пройдите через эту коллекцию и сохраните электронные сообщения на локальном диске компьютера следующим образом:

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Gets the message info collection and Download each message
ImapMessageInfoCollection list = imap.ListMessages();
for (int i = 0; i < list.Count; i++)
{
// Save the message as an EML file
imap.SaveMessage(list[i].UniqueId, list[i].UniqueId + "_out.eml");
}

Создание новой папки

Протокол IMAP также позволяет создавать новую папку на почтовом сервере. Это можно сделать с помощью простого вызова функции.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
imap.CreateFolder("NewFolder");

Создание нового сообщения в папке

Добавьте новое сообщение в папку, используя классы MailMessage и ImapClient. Примеры ниже показывают, как сначала создать объект MailMessage, указав тему, получателя и отправителя. Затем он подписывается на папку и добавляет сообщение в нее. Следующий фрагмент кода показывает, как создать новое сообщение в папке.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create a message and Subscribe to the Inbox folder ans Append the newly created message
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message");
imap.SelectFolder(ImapFolderInfo.InBox);
imap.SubscribeFolder(imap.CurrentFolder.Name);
imap.AppendMessage(imap.CurrentFolder.Name, message);

POP3

Эта статья показывает несколько примеров, использующих протокол POP3 через SSL. Для подключения к защищённому SSL серверу нужно определить SSL порт и два дополнительных свойства. Остальная часть кода такая же, как для подключения к обычному POP3 серверу.

Примеры кода ниже показывают, как:

  • Подключиться к SSL серверу.
  • Проверить состояние почтового ящика.
  • Получить информацию о сообщении.
  • Извлечь электронные письма.

Подключение к почтовому серверу

Подключитесь к почтовому серверу с поддержкой SSL, используя класс Pop3client, как описано ниже.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create a POP3 client
Pop3Client client = new Pop3Client();
// Basic settings (required)
client.Host = "pop.gmail.com";
client.Username = "user@gmail.com";
client.Password = "pwd";
client.Port = 995;
client.SecurityOptions = SecurityOptions.SSLImplicit;

Проверка состояния почтового ящика

Следующий фрагмент кода показывает, как проверить количество сообщений, хранящихся в почтовом ящике, и размер почтового ящика. Используйте класс Pop3MailboxInfo для этой цели.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create an object of type Pop3MailboxInfo and Get the mailbox information, Check number of messages, and Check mailbox size
Pop3MailboxInfo info;
info = client.GetMailboxInfo();
Console.WriteLine(info.MessageCount);
Console.Write(info.OccupiedSize + " bytes");

Проверка информации о сообщениях

Этот пример проверяет все сообщения в почтовом ящике, используя класс Pop3MessageInfoCollection. Используйте функцию Pop3Client.ListMessages() для получения коллекции Pop3MessageInfoCollection. Затем пройдите через коллекцию, чтобы прочитать информацию о сообщении: идентификатор сообщения, индекс, тему и размер.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Get the list of messages in the mailbox and Iterate through the messages
Pop3MessageInfoCollection infos = client.ListMessages();
foreach (Pop3MessageInfo info in infos)
{
Console.Write("ID:" + info.UniqueId);
Console.Write("Index number:" + info.SequenceNumber);
Console.Write("Subject:" + info.Subject);
Console.Write("Size:" + info.Size);
}

Извлечение сообщений

Чтобы получить сообщения из почтового ящика, используйте метод FetchMessage() класса Pop3Client, чтобы получить сообщение в объект типа MailMessage. Следующий фрагмент кода показывает, как подсчитать количество электронных писем в почтовом ящике, а затем пройтись через них, чтобы извлечь каждое.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Get the number of messages in the mailbox
int messageCount = client.GetMessageCount();
// Iterate through the messages and retrieve one by one
for (int i = 1; i <= messageCount; i++)
{
// Create an object of type MailMessage and Retrieve the message in MailMessage format directly
Aspose.Email.MailMessage msg;
msg = client.FetchMessage(i);
Console.WriteLine("From:" + msg.From.ToString());
Console.WriteLine("Subject:" + msg.Subject);
Console.WriteLine(msg.HtmlBody);
msg.Save(i + "Getmessage_out.eml");
}