Características de la utilidad: cliente SMTP

Listado de servidores de extensión que utilizan un cliente SMTP

Aspose.Email SmtpClient permite recuperar las extensiones de servidor que admite un servidor, 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 admitidos en forma de una matriz de cadenas.

Recuperación de extensiones de servidor

El siguiente fragmento de código muestra cómo recuperar las extensiones de 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

La API Aspose.Email ofrece la capacidad de crear mensajes firmados mediante certificados. La attachSignature método del MailMessage la clase se puede usar para firmar un mensaje para guardarlo o incluso enviarlo usando el SmtpClient.

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

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

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

Firma un mensaje

El siguiente fragmento de código 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);

Uso de la opción de certificado independiente

Es posible que los clientes de correo electrónico basados en la web no puedan mostrar el contenido del cuerpo de un mensaje firmado. Esto puede solucionarse separando el certificado antes de enviarlo a los clientes de correo electrónico basados en la web. La marca separada en el método sobrecargado de attachSignature se puede utilizar para lograr esto. Si se establece en true, el certificado se separa del correo electrónico y viceversa. Para ver el cuerpo del mensaje firmado en los clientes basados en la web, debe crear MailMessage con firma independiente. El siguiente fragmento de código muestra cómo utilizar la opción de certificado independiente.

// 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);