Funkcje pomocnicze – klient SMTP

Wymienianie serwerów rozszerzeń przy użyciu klienta SMTP

Aspose.Email SmtpClient pozwala pobrać rozszerzenia serwera, które serwer obsługuje, takie jak IDLE, UNSELECT, QUOTA itp. Pomaga to w identyfikacji dostępności rozszerzenia przed użyciem klienta dla tej konkretnej funkcjonalności. getCapabilities() metoda zwraca obsługiwane typy rozszerzeń w postaci tablicy ciągów znaków.

Pobieranie rozszerzeń serwera

Poniższy fragment kodu pokazuje, jak pobrać rozszerzenia serwera.

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

Praca z podpisanymi wiadomościami

API Aspose.Email zapewnia możliwość tworzenia pod podpisanych wiadomości przy użyciu certyfikatów. attachSignature metoda MailMessage klasa może być użyta do podpisania wiadomości w celu zapisania lub nawet wysłania przy użyciu SmtpClient.

Zależności Maven 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>

Włącz dostawcę zabezpieczeń Bouncy Castle

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

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

Podpisz wiadomość

Poniższy fragment kodu pokazuje, jak podpisać wiadomość.

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

Użycie opcji odłączonego certyfikatu

Klienci e‑mail w przeglądarkach mogą nie wyświetlać treści podpisanej wiadomości. Można to rozwiązać, odłączając certyfikat przed wysłaniem do klientów internetowych. Flaga odłączenia w przeciążonej metodzie attachSignature można użyć do tego celu. Jeśli ustawione na true, certyfikat jest odłączony od e‑maila i odwrotnie. Aby zobaczyć treść podpisanej wiadomości w klientach internetowych, musisz utworzyć MailMessage z odłączonym podpisem. Poniższy fragment kodu pokazuje, jak użyć opcji odłączonego certyfikatu.

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