ویژگی‌های کمکی - مشتری SMTP

فهرست‌کردن سرویس‌گیرندگان افزونه با استفاده از Smtp Client

Aspose.Email SmtpClient به شما اجازه می‌دهد افزونه‌های سروری که پشتیبانی می‌کند مانند IDLE، UNSELECT، QUOTA و غیره را دریافت کنید. این به شناسایی در دسترس بودن یک افزونه قبل از استفاده از کلاینت برای آن عملکرد خاص کمک می‌کند. 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);

کار با پیام امضاشده

API Aspose.Email قابلیت ایجاد پیام‌های امضاشده با استفاده از گواهینامه‌ها را فراهم می‌کند. attachSignature متد از MailMessage کلاس می‌تواند برای امضای یک پیام جهت ذخیره‌سازی یا حتی ارسال آن با استفاده از SmtpClient.

وابستگی‌های 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>

فعال‌سازی فراهم‌کننده امنیتی 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);