Доступ к 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"); | |
} |