Utility Features - SMTP клиент
Изброяване на разширения на сървъра с използване на Smtp клиент
Aspose.Email SmtpClient ви позволява да извлечете разширенията, които сървърът поддържа, като IDLE, UNSELECT, QUOTA и др. Това помага за идентифициране на наличността на разширението преди да се използва клиентът за конкретната функция. The getCapabilities() методът връща поддържаните типове разширения във формата на масив от низове.
Извличане на разширения на сървъра
Следният кодов фрагмент ви показва как да извлечете разширенията на сървъра.
// 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);
Работа със подписано съобщение
Aspose.Email API предоставя възможност за създаване на подписани съобщения с използване на сертификати. The attachSignature метод на MailMessage клас може да се използва за подписване на съобщение за запазване или дори изпращане, като се използва SmtpClient.
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>
Активиране на Bouncy Castle доставчик на сигурността
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
if (Security.getProvider("BC") == null)
Security.addProvider(new BouncyCastleProvider());
Подписване на съобщение
Следният кодов фрагмент ви показва как да подписате съобщение.
// 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);
Използване на опцията за отделен сертификат
Уеб-базираните имейл клиенти може да не могат да покажат съдържанието на тялото на подписано съобщение. Това може да се реши, като се отдели сертификатът преди изпращане към уеб-базираните имейл клиенти. Флагът за отделяне в презаредения метод на attachSignature може да се използва за постигане на това. Ако е зададено на true, сертификатът е отделен от имейла и обратно. За да видите тялото на подписаното съобщение в уеб базирани клиенти, трябва да създадете MailMessage с отделен подпис. Следният кодов фрагмент ви показва как да използвате опцията за отделен сертификат.
// 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);