Подключиться к SMTP-серверам с помощью C#

Простой протокол передачи почты (SMTP) — наиболее часто используемый протокол электронной почты, предназначенный для отправки сообщений электронной почты из клиентских приложений на сервер электронной почты. В различных случаях почтовые клиенты реализуются в приложениях .NET для отправки электронных писем через SMTP. Для таких сценариев в этой статье описывается, как программно подключиться к SMTP-серверу с помощью C#. Кроме того, примеры кода демонстрируют, как отправить электронное письмо через SMTP-клиент после установления соединения.

C# API для подключения SMTP-сервера

Aspose.Email для .NET — это API C#, предназначенный для создания мощных клиентских приложений электронной почты. API позволяет легко выполнять сложные операции с электронной почтой, написав всего несколько строк кода. Кроме того, он позволяет подключать SMTP-серверы через SOCKS и прокси-серверы HTTP. Вы можете либо скачать библиотеку DLL API, либо установить ее с помощью NuGet.

PM> Install-Package Aspose.Email

Подключиться к SMTP-серверу с помощью C#

Перед подключением к SMTP-серверу вам необходимо знать следующее.

  • Имя пользователя
  • Пароль
  • Порт

Получив их, вы можете настроить SMTP-клиент, выполнив следующие действия.

В следующем примере кода показано, как настроить API для SMTP-подключения в C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-email/Aspose.Email-for-.NET.
SmtpClient client = new SmtpClient("smtp.gmail.com");

// Установите имя пользователя, пароль, порт и параметры безопасности
client.Username = "your.email@gmail.com";
client.Password = "your.password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

После настройки API вы можете подключиться к SMTP-серверу одним из следующих способов.

Подключиться к SMTP через прокси-сервер SOCKS на C#

Aspose.Email поддерживает версии 4, 4a и 5 прокси-протокола SOCKS. Ниже приведены шаги для подключения к SMTP-серверу через прокси-сервер SOCKS с использованием Aspose.Email для .NET.

  • Инициализируйте SmtpClient с адресом хоста, именем пользователя, паролем и другими настройками.
  • Создайте объект класса SocksProxy и задайте адрес и порт.
  • Задайте прокси клиента с помощью свойства SmtpClient.Proxy.
  • Отправьте электронное письмо с помощью метода SmtpClient.Send().

В следующем примере кода показано, как подключиться к SMTP-серверу через прокси-сервер SOCKS с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-email/Aspose.Email-for-.NET.
SmtpClient client = new SmtpClient("smtp.domain.com", "username", "password");
client.SecurityOptions = SecurityOptions.SSLImplicit;
string proxyAddress = "192.168.203.142"; // proxy address
int proxyPort = 1080; // proxy port
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.Proxy = proxy;
client.Send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"));

Подключиться к SMTP-серверу через HTTP-прокси-сервер

Ниже приведены шаги для подключения к SMTP-серверу через прокси-сервер HTTP.

  • Создайте экземпляр класса HttpProxy и инициализируйте его с помощью IP-адреса и номера порта.
  • Создайте и настройте объект SmtpClient.
  • Установите HTTP-прокси с помощью свойства SmtpClient.Proxy.
  • Отправьте электронное письмо с помощью метода SmtpClient.Send().

В следующем примере кода показано, как подключиться к SMTP-серверу через прокси-сервер HTTP.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-email/Aspose.Email-for-.NET.
HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);
using (SmtpClient client = new SmtpClient("host", 587, "username", "password"))
{
    client.Proxy = proxy;
    client.Send(new MailMessage(
        "from@domain.com",
        "to@domain.com",
        "NETWORKNET-34226 - " + Guid.NewGuid().ToString(),
        "NETWORKNET-34226 Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"));
}

Получите бесплатную лицензию API

Вы можете попробовать и использовать Aspose.Email для .NET бесплатно, получив временную лицензию.

Вывод

В этой статье вы узнали, как подключиться к SMTP-серверу с помощью C#. Кроме того, в пошаговом руководстве и примерах кода показано, как подключиться к SMTP-серверу через SOCKS и прокси-серверы HTTP. Вы можете узнать больше об API электронной почты C#, используя документацию.

Смотрите также