Hulpfuncties - SMTP‑client

Serverextensies weergeven met SMTP‑client

Aspose.Email SmtpClient maakt het mogelijk de serverextensies op te halen die een server ondersteunt, zoals IDLE, UNSELECT, QUOTA, enz. Dit helpt bij het bepalen van de beschikbaarheid van een extensie vóór gebruik van de client voor die specifieke functionaliteit. De getCapabilities() methode retourneert de ondersteunde extensietypen in de vorm van een string‑array.

Serverextensies ophalen

Het volgende codefragment laat zien hoe u serverextensies ophaalt.

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

Werken met ondertekend bericht

Aspose.Email‑API biedt de mogelijkheid ondertekende berichten te maken met certificaten. De attachSignature methode van de MailMessage klasse kan worden gebruikt om een bericht te ondertekenen voor opslag of zelfs verzending met behulp van de SmtpClient.

Bouncy Castle Maven‑afhankelijkheden

<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>

Bouncy Castle‑beveiligingsprovider inschakelen

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

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

Een bericht ondertekenen

Het volgende codefragment laat zien hoe u een bericht ondertekent.

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

Gebruik van losgekoppelde certificaatoptie

Web‑gebaseerde e‑mailclients kunnen mogelijk de inhoud van een ondertekend bericht niet weergeven. Dit kan worden opgelost door het certificaat los te koppelen voordat het naar web‑gebaseerde e‑mailclients wordt verzonden. De losgekoppelde vlag in de overladen methode van attachSignature kan hiervoor worden gebruikt. Indien ingesteld op true, wordt het certificaat losgekoppeld van de e‑mail en vice versa. Om de inhoud van een ondertekend bericht te zien in web‑gebaseerde clients, moet u een MailMessage met losgekoppelde handtekening. Het volgende codefragment laat zien hoe u de losgekoppelde certificaatoptie gebruikt.

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