Утилитарные функции - 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 для выполнения асинхронной операции.