Подключиться к POP3‑серверу

Этот Pop3Client класс позволяет приложениям управлять почтовыми ящиками, используя Post Office Protocol, Version 3 (POP3). Для подключения к серверу используйте Pop3Client класс. The Pop3Client класс является основным входом для разработчиков, желающих добавить управление POP3 в свои .NET‑приложения. Эта статья объясняет, как его использовать. Чтобы подключиться к POP3‑серверу:

  1. Создать экземпляр Pop3Client класс.
  2. Укажите хост, имя пользователя и пароль в Pop3Client экземпляр.

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client();

// Specify host, username, password, Port and SecurityOptions for your client
client.setHost("pop.gmail.com");
client.setUsername("your.username@gmail.com");
client.setPassword("your.password");
client.setPort(995);
client.setSecurityOptions(SecurityOptions.Auto);
System.out.println("Connected to POP3 server.");

Подключение к SSL‑серверу

Подключение к POP3‑серверу описал, как подключиться к POP3‑серверу в три простых шага:

  1. Создать экземпляр Pop3Client класс.
  2. Укажите хост, имя пользователя и пароль.

Процесс подключения к POP3‑серверу с поддержкой SSL схож, но требует задать ещё несколько свойств:

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client();

// Specify host, username and password, Port and SecurityOptions for your client
client.setHost("pop.gmail.com");
client.setUsername("your.username@gmail.com");
client.setPassword("your.password");
client.setPort(995);
client.setSecurityOptions(SecurityOptions.Auto);
System.out.println("Connecting to POP3 server using SSL.");

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

POP означает Post Office Protocol. APOP — Authenticated Post Office Protocol. APOP является расширенной версией настройки POP3‑сервера, которая шифрует ваше имя пользователя и пароль и использует механизм аутентификации, предназначенный для защиты пароля учётной записи POP3 при проверке почты. Аутентификация APOP не требует отправки пароля учётной записи в открытом виде на POP3‑почтовый сервер.

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

Прокси‑серверы очень распространены для связи с внешним миром. В таких случаях адреса прокси используются почтовыми клиентами для доступа к почтовым ящикам через Интернет. Aspose.Email поддерживает версии 4, 4a и 5 протокола SOCKS‑прокси. В этой статье представлен рабочий пример получения писем с помощью прокси‑почтового сервера. Чтобы получить письма через прокси‑сервер:

  1. Инициализировать Прокси с необходимой информацией: адрес прокси, порт и версия SOCKS.
  2. Инициализировать Pop3Client с указанием адреса хоста, имени пользователя, пароля и любых других настроек.
  3. Установите свойство Proxy клиента в Прокси объект, созданный выше.

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client("pop.domain.com", "username", "password");

// Set proxy address, Port and Proxy
String proxyAddress = "192.168.203.142";
int proxyPort = 1080;
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);
Pop3MailboxInfo mailboxInfo = client.getMailboxInfo();

Подключение к серверу через HTTP‑прокси

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);
try (Pop3Client client = new Pop3Client("imap.domain.com", "username", "password")) {
    client.setProxy(proxy);
    Pop3MailboxInfo mailboxInfo = client.getMailboxInfo();
}

Настроить механизм аутентификации

Получить список механизмов аутентификации, поддерживаемых POP3‑сервером, с помощью getSupportedAuthentication метод Pop3Client класс. Этот метод позволяет клиенту определить, какие методы аутентификации доступны для установления защищённого соединения с сервером. Затем, используя setAllowedAuthentication метод, который получает (или задаёт) перечисление типов аутентификации, разрешённых пользователем, выбирайте наиболее подходящий механизм аутентификации для клиент‑серверного взаимодействия. Это позволяет явно установить метод аутентификации для почтового клиента.

Следующий пример кода показывает, как настроить аутентификацию почтового клиента:

pop3Client.setAllowedAuthentication(Pop3KnownAuthenticationType.Plain);

Поддержка протокола OAuth 2.0 для авторизации

OAuth 2.0 предоставляет авторизацию

Pop3Client поддерживает OAuth 2.0, предоставляя специфические способы авторизации для приложений. Следующие конструкторы используются для инициализации POP3Client с помощью OAuth:

public Pop3Client(

            String host, /*The host name*/

            int port, /*The port number*/ 

            String username, /*The user name*/

            ITokenProvider tokenProvider, /*TokenProvider allowing to retrieve access token*/

            /*SecurityOptions*/int securityOptions) /*Security mode for a mail client*/



public Pop3Client(

            String host, /*The host name*/

            int port, /*The port number*/

            String username, /*The user name*/

            String authInfo, /*The user password or XOAUTH2 access token*/

            boolean useOAuth, /*Defines whether SASL XOAUTH2 mechanism is used to login to the server*/

            /*SecurityOptions*/int securityOptions) /*Security mode for a mail client*/

Проверка учетных данных почтового сервера без отправки письма

Иногда необходимо проверить учетные данные без отправки письма. Aspose.Email предоставляет validateCredentials() метод для выполнения этой операции. Если проверка проходит успешно, код внутри оператора if выполняется, обычно используется для дальнейших действий или получения данных с IMAP‑сервера. Следующий фрагмент кода демонстрирует проверку учетных данных без отправки письма:

try (Pop3Client pop3Client = new Pop3Client(
        server.Pop3Url, server.Pop3Port, "userName", "password", SecurityOptions.Auto)) {
    pop3Client.setTimeout(4000);

    if (pop3Client.validateCredentials()) {
        // to do something
    }
}

Использование аутентификации CRAM-MD5 для подключения к серверу

Чтобы обеспечить безопасную аутентификацию и связь с POP3‑сервером, можно указать и принудительно использовать CRAM-MD5 в качестве разрешённого метода аутентификации для POP3‑клиента. Следующий фрагмент кода показывает, как настроить разрешённый тип аутентификации для Pop3Client:

popClient.setAllowedAuthentication(Pop3KnownAuthenticationType.CramMD5);

Как установить тайм‑аут для почтовых операций

Каждая почтовая операция занимает время, зависящее от множества факторов (сетевые задержки, размер данных, производительность сервера и т.д.). Вы можете установить тайм‑аут для всех почтовых операций. Пример кода ниже показывает, как это сделать с помощью Тайм‑аут свойство. Примечание: не следует задавать большие значения, чтобы избежать длительного ожидания в приложении.

try (Pop3Client pop3Client = new Pop3Client("host", 995, "username", "password", SecurityOptions.Auto))
{
    pop3Client.setTimeout(60000); // 60 seconds

    // some code...
}