Простой протокол передачи почты (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-клиент, выполнив следующие действия.
- Создайте объект класса SmtpClient.
- Задайте имя пользователя, пароль и номер порта, используя свойства SmtpClient.Username, SmtpClient.Password и SmtpClient.Port соответственно.
- Задайте параметры безопасности с помощью свойства SmtpClient.SecurityOptions.
В следующем примере кода показано, как настроить 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#, используя документацию.