Užitečné funkce – SMTP klient

Výpis rozšíření serverů pomocí SMTP klienta

Aspose.Email SmtpClient umožňuje vám získat rozšíření serveru, která server podporuje, jako jsou IDLE, UNSELECT, QUOTA atd. To pomáhá zjistit dostupnost rozšíření před použitím klienta pro danou funkci. getCapabilities() metoda vrací podporované typy rozšíření ve formě pole řetězců.

Načítání rozšíření serveru

Následující úryvek kódu ukazuje, jak načíst rozšíření serveru.

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

Práce s podepsanou zprávou

Aspose.Email API poskytuje možnost vytvářet podepsané zprávy pomocí certifikátů. attachSignature metoda třídy MailMessage třída může být použita k podepsání zprávy pro uložení nebo dokonce odeslání pomocí SmtpClient.

Závislosti Maven pro 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>

Povolení poskytovatele zabezpečení Bouncy Castle

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

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

Podepsat zprávu

Následující úryvek kódu ukazuje, jak podepsat zprávu.

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

Použití možnosti odděleného certifikátu

Weboví e‑mailoví klienti nemusí být schopni zobrazit obsah těla podepsané zprávy. To lze vyřešit oddělením certifikátu před odesláním do webových e‑mailových klientů. Příznak oddělení v přetížené metodě attachSignature může být použito k dosažení tohoto. Pokud je nastaveno na true, certifikát je oddělen od e‑mailu a naopak. Pro zobrazení těla podepsané zprávy ve webových klientech musíte vytvořit MailMessage s odděleným podpisem. Následující úryvek kódu ukazuje, jak použít možnost odděleného certifikátu.

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