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.