Утилитарные функции - SMTP Клиент

Утилитарные функции - SMTP Клиент

Получение расширений сервера с помощью SMTP Клиента

Aspose.Email SmtpClient позволяет получать расширения сервера, которые поддерживаются сервером, такие как IDLE, UNSELECT, QUOTA и т.д. Это помогает определить доступность расширения перед использованием клиента для конкретной функциональности. Метод GetCapabilities() возвращает поддерживаемые типы расширений в виде массива строк.

Получение расширений сервера

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

// 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", "user@gmail.com", "password");
client.SecurityOptions = SecurityOptions.SSLExplicit;
client.Port = 587;
try
{
string[] caps = client.GetCapabilities();
foreach (string str in caps)
Console.WriteLine(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Работа с подписанным сообщением

API Aspose.Email предоставляет возможность создавать подписанные сообщения с использованием сертификатов. Метод AttachSignature класса MailMessage может быть использован для подписания сообщения с целью его сохранения или даже отправки с помощью SmtpClient.

Подписать сообщение

Следующий код показывает, как подписать сообщение.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_SMTP();
string publicCertFile = dataDir + "MartinCertificate.cer";
string privateCertFile = dataDir + "MartinCertificate.pfx";
X509Certificate2 publicCert = new X509Certificate2(publicCertFile);
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "password");
MailMessage msg = new MailMessage("userfrom@gmail.com", "userto@gmail.com", "Signed message only", "Test Body of signed message");
MailMessage signed = msg.AttachSignature(privateCert);
MailMessage encrypted = signed.Encrypt(publicCert);
MailMessage decrypted = encrypted.Decrypt(privateCert);
MailMessage unsigned = decrypted.RemoveSignature();//The original message with proper body
MapiMessage mapi = MapiMessage.FromMailMessage(unsigned);

Использование опции отсоединенного сертификата

Веб-клиенты электронной почты могут не отображать содержимое тела подписанного сообщения. Это можно решить, отсоединив сертификат перед отправкой его веб-клиентам электронной почты. Флаг отсоединения в перегруженном методе AttachSignature может быть использован для достижения этого. Если установить его в true, сертификат отсоединяется от электронной почты и наоборот. Чтобы увидеть тело подписанного сообщения в веб-клиентах, вам нужно создать MailMessage с отсоединенной подписью. Следующий код показывает, как использовать опцию отсоединенного сертификата.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
string privateCertFile = dataDir + "MartinCertificate.pfx";
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "anothertestaccount");
MailMessage msg = new MailMessage("user@domain.com", "receiver@domain.com", "subject:Signed message only by AE", "body:Test Body of signed message by AE");
MailMessage signed = msg.AttachSignature(privateCert, true);
SmtpClient smtp = GetSmtpClient();
try
{
smtp.Send(signed);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

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

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

Он проверяет, что предоставленные учетные данные электронной почты, такие как имя пользователя и пароль, являются действительными, и что клиент может установить успешное соединение с сервером. Эта проверка учетных данных помогает гарантировать, что клиент может безопасно получить доступ к учетной записи электронной почты и выполнять различные операции, такие как отправка электронной почты.

using (SmtpClient client = new SmtpClient(server.SmtpUrl, server.SmtpPort, "username", "password", SecurityOptions.Auto))
{
    client.Timeout = 4000;
   
    if (client.ValidateCredentials())
    {
        //to do something
    }
}

Также существует версия метода ValidateCredentialsAsync для выполнения асинхронной операции.