Funciones de utilidad - Cliente SMTP

Listando extensiones del servidor usando Cliente SMTP

Aspose.Email SmtpClient le permite recuperar las extensiones del servidor que este soporta, como IDLE, UNSELECT, QUOTA, etc. Esto ayuda a identificar la disponibilidad de una extensión antes de usar el cliente para esa funcionalidad en particular. El getCapabilities() el método devuelve los tipos de extensión soportados en forma de un arreglo de strings.

Recuperando extensiones del servidor

El siguiente fragmento de código le muestra cómo recuperar extensiones del servidor.

// For complete examples and data files, please go to 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);

Trabajando con mensajes firmados

Aspose.Email API brinda la capacidad de crear mensajes firmados usando certificados. El attachSignature método del MailMessage la clase puede usarse para firmar un mensaje para guardarlo o incluso enviarlo usando el SmtpClient.

Dependencias Maven de Bouncy Castle

<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 el proveedor de seguridad Bouncy Castle

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

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

Firmar un mensaje

El siguiente fragmento de código le muestra cómo firmar un mensaje.

// For complete examples and data files, please go to 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", "Signed message only", "Test Body of signed message");
MailMessage signed = msg.attachSignature(privateCert, "password");
MailMessage encrypted = signed.encrypt(publicCert, "password");
MailMessage decrypted = encrypted.decrypt(privateCert, "password");
MailMessage unsigned = decrypted.removeSignature();// The original message with proper body
MapiMessage mapi = MapiMessage.fromMailMessage(unsigned);

Usando la opción de certificado separado

Los clientes de correo electrónico basados en web pueden no ser capaces de mostrar el contenido del cuerpo de un Mensaje firmado. Esto puede solucionarse separando el certificado antes de enviarlo a clientes web. La bandera detached en el método sobrecargado de attachSignature puede usarse para lograr esto. Si se establece en true, el certificado se separa del correo y viceversa. Para ver el cuerpo del Mensaje firmado en clientes web, necesita crear MailMessage con firma separada. El siguiente fragmento de código le muestra cómo usar la opción de certificado separado.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

MailMessage msg = new MailMessage("dr38445@gmail.com", "dr38445@gmail.com", "subject:Signed message only by AE", "body:Test Body of signed message by AE");
MailMessage signed = msg.attachSignature(privateCert, "password", true);
SmtpClient smtp = getSmtpClient(); //some test smtp client

smtp.send(signed);