Recursos de Utilidade - Cliente SMTP
Recursos de Utilidade - Cliente SMTP
Listando Servidores de Extensão usando o Cliente SMTP
Aspose.Email SmtpClient permite recuperar as extensões que um servidor suporta, como IDLE, UNSELECT, QUOTA, etc. Isso ajuda a identificar a disponibilidade de uma extensão antes de usar o cliente para essa funcionalidade específica. O método GetCapabilities() retorna os tipos de extensões suportados na forma de um array de strings.
Recuperando Extensões de Servidor
O seguinte trecho de código mostra como recuperar extensões de servidor.
// 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); | |
} |
Trabalhando com Mensagens Assinadas
A API Aspose.Email fornece a capacidade de criar mensagens assinadas usando certificados. O método AttachSignature da classe MailMessage pode ser usado para assinar uma mensagem para salvá-la ou até mesmo enviá-la usando o SmtpClient.
Assinar uma Mensagem
O seguinte trecho de código mostra como assinar uma mensagem.
// 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); |
Usando a Opção de Certificado Destacado
Clientes de email baseados na web podem não conseguir exibir o conteúdo do corpo de uma mensagem assinada. Isso pode ser resolvido destacando o certificado antes de enviá-lo para clientes de email baseados na web. A flag destacada no método sobrecarregado de AttachSignature pode ser usada para alcançar isso. Se definido como true, o certificado é destacado do email e vice-versa. Para ver o corpo da Mensagem Assinada em clientes baseados na web, você precisa criar um MailMessage com assinatura destacada. O seguinte trecho de código mostra como usar a opção de certificado destacado.
// 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); | |
} |
Validar Credenciais do Servidor de Email sem Enviar Email
A API Aspose.Email fornece a capacidade de validar credenciais do servidor de email sem enviar um email. Isso pode ser alcançado com o método ValidateCredentials que é responsável por verificar a autenticidade e a correção das credenciais de email fornecidas, que normalmente são usadas para autenticação ao conectar-se ao servidor.
Ele verifica se as credenciais de email fornecidas, como nome de usuário e senha, são válidas e se o cliente pode estabelecer uma conexão bem-sucedida com o servidor. Essa verificação de credenciais ajuda a garantir que o cliente possa acessar a conta de email de forma segura e realizar várias operações, como enviar email.
using (SmtpClient client = new SmtpClient(server.SmtpUrl, server.SmtpPort, "username", "password", SecurityOptions.Auto))
{
client.Timeout = 4000;
if (client.ValidateCredentials())
{
//para fazer algo
}
}
Também existe uma versão do método ValidateCredentialsAsync para realizar uma operação assíncrona.