Recursos de Utilidade - Cliente SMTP

Listando Extensões de Servidores usando o Cliente SMTP

Aspose.Email SmtpClient permite recuperar as extensões de servidor 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ão suportados na forma de um array de strings.

Recuperando Extensões de Servidor

O seguinte trecho de código mostra como recuperar as extensões de servidor.

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-email/Aspose.Email-for-Java

SmtpClient client = new SmtpClient("smtp.gmail.com",587,"username","password");
client.setSecurityOptions(SecurityOptions.Auto);
String[] caps = client.getCapabilities();
for (String str:caps)
	System.out.println(str);

Trabalhando com Mensagem Assinada

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.

Dependências do Bouncy Castle no Maven

<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.60</version>
</dependency>

<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.60</version>
</dependency>

Habilitar o Provedor de Segurança Bouncy Castle

import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

if (Security.getProvider("BC") == null)
    Security.addProvider(new BouncyCastleProvider());

Assinar uma Mensagem

O seguinte trecho de código mostra como assinar uma mensagem.

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-email/Aspose.Email-for-Java

byte[] privateCert = Files.readAllBytes(new File("sample.pfx").toPath());
byte[] publicCert = Files.readAllBytes(new File("sample.cer").toPath());

MailMessage msg = new MailMessage("userfrom@gmail.com", "userto@gmail.com", "Mensagem assinada apenas", "Corpo de teste da mensagem assinada");
MailMessage signed = msg.attachSignature(privateCert, "password");
MailMessage encrypted = signed.encrypt(publicCert, "password");
MailMessage decrypted = encrypted.decrypt(privateCert, "password");
MailMessage unsigned = decrypted.removeSignature();// A mensagem original com o corpo correto
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 detached no método sobrecarregado de attachSignature pode ser usada para 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 MailMessage com assinatura destacada. O seguinte trecho de código mostra como usar a opção de certificado destacado.

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-email/Aspose.Email-for-Java

MailMessage msg = new MailMessage("dr38445@gmail.com", "dr38445@gmail.com", "assunto:Mensagem assinada apenas por AE", "corpo:Corpo de teste da mensagem assinada por AE");
MailMessage signed = msg.attachSignature(privateCert, "password", true);
SmtpClient smtp = getSmtpClient(); // algum cliente smtp de teste

smtp.send(signed);