Dienstprogramme – SMTP‑Client

Auflisten von Erweiterungs‑Servern mit dem SMTP‑Client

Aspose.Email SmtpClient ermöglicht das Abrufen der Server‑Erweiterungen, die ein Server unterstützt, wie IDLE, UNSELECT, QUOTA usw. Dies hilft, die Verfügbarkeit einer Erweiterung zu erkennen, bevor der Client für diese Funktionalität verwendet wird. Die getCapabilities() Methode gibt die unterstützten Erweiterungstypen als String‑Array zurück.

Server‑Erweiterungen abrufen

Das folgende Code‑Snippet zeigt, wie man Server‑Erweiterungen abruft.

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

Arbeiten mit signierten Nachrichten

Aspose.Email API bietet die Möglichkeit, signierte Nachrichten mit Zertifikaten zu erstellen. Die attachSignature Methode des MailMessage Klasse kann verwendet werden, um eine Nachricht zum Speichern oder sogar zum Senden zu signieren mit dem SmtpClient.

Bouncy Castle Maven‑Abhängigkeiten

<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‑Sicherheitsanbieter aktivieren

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

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

Nachricht signieren

Das folgende Code‑Snippet zeigt, wie man eine Nachricht signiert.

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

Verwendung der Option für abgetrenntes Zertifikat

Webbasierte E‑Mail‑Clients können möglicherweise den Inhalt einer signierten Nachricht nicht anzeigen. Dies kann behoben werden, indem das Zertifikat vor dem Senden an webbasierte Clients abgetrennt wird. Das abgetrennte Flag in der überladenen Methode von attachSignature kann dafür verwendet werden. Wenn sie auf true gesetzt ist, wird das Zertifikat von der E‑Mail getrennt und umgekehrt. Um den Körper einer signierten Nachricht in webbasierten Clients zu sehen, müssen Sie erstellen MailMessage mit abgetrennter Signatur. Das folgende Code‑Snippet zeigt, wie man die Option für ein abgetrenntes Zertifikat verwendet.

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