Sadə və HTML‑əsaslı e‑mailləri göndərmək üçün pulsuz Java API
Əlavələr, Daxili Şəkillər, SMTP, IMAP, POP3 Protokol Dəstəyi və İnkişaf etmiş Təhlükəsizlik dəstəyi ilə mətn və HTML‑əsaslı e‑mail mesajları yaratmaq və göndərmək üçün Açıq Mənbəli Java Email Emalı API.
JavaMail nədir?
İşgüzar tətbiqlər və avtomatlaşdırılmış sistemlər dünyasında, e‑mailləri proqram vasitəsilə göndərib almaq qabiliyyəti yalnız rahatlıq deyil—bu, zəruriyyətdir. Şifrə sıfırlamaları və sifariş təsdiqləri göndərməkdən tutmuş gələn dəstək biletlərinin emalına qədər, e‑mail inteqrasiyası əsas bir xüsusiyyətdir. Java inkişafçıları üçün bu funksionallığın təməli güclü, açıq‑mənbəli JavaMail API‑dir. Bu əhatəli məhsul səhifəsi JavaMail API‑ni, onun güclü xüsusiyyətlərini araşdıracaq və Java tətbiqlərinizdə e‑mail inteqrasiyasına başlamaq üçün praktik kod nümunələri təqdim edəcək.
JavaMail API, Oracle (əvvəllər Sun Microsystems) tərəfindən təmin edilən, platforma‑müstəqil və protokol‑müstəqil bir çərçivə təqdim edən yetkin, açıq‑mənbəli bir çərçivədir. Bu, Java ekosistemində e‑mail ilə işləmək üçün standart API‑dir. SMTP, POP3 və IMAP kimi əsas e‑mail protokollarının mürəkkəbliyini abstraktlaşdıraraq, inkişafçılara təmiz, obyekt‑oriyentasiya edilmiş interfeys ilə işləməyə imkan verir. Kitabxananın bir neçə vacib xüsusiyyəti var, məsələn HTML e‑maillərin yaradılması və göndərilməsi, əlavə faylların əlavə edilməsi, daxili şəkillərin yerləşdirilməsi, çox‑hissəli məzmun, güclü doğrulama və təhlükəsizlik dəstəyi, qovluq‑əsaslı e‑mail dəstəyi, daha yaxşı e‑mail axtarışı və filtrasiya dəstəyi, SMTP vasitəsilə e‑maillərin oxunması və s.
JavaMail ilə Başlamaq
İlk olaraq, JDK 1.6 və ya daha yuxarı bir versiyanı quraşdırmalısınız. pom.xml faylınıza aşağıdakı Maven asılılığını əlavə etməlisiniz.
Maven asılılığı
<dependency>
<groupId>com.sun.mail</groupId>s;
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
Kitabxananı birbaşa GitHub səhifəsindən yükləyə bilərsiniz.
Java Kitabxanası vasitəsilə E‑mail Mesajının Göndərilməsi
Açıq mənbəli JavaMail kitabxanası Java tətbiqləri daxilində sadə və HTML e‑mail mesajları yaratmaq və göndərmək üçün dəstək təmin edir. Proqramçılar mövcud e‑mailləri oxuya, faylları və şəkilləri əlavə fayl kimi əlavə edə, bir neçə istifadəçiyə e‑mail göndərə, xüsusi başlıqlar əlavə edə və daha çoxunu edə bilərlər. Host, port və doğrulama və TLS‑i aktivləşdirmək üçün bayraqları kimi əlaqə parametrlərini təyin etməlisiniz. Aşağıdakı nümunə Java tətbiqlərində SMTP serveri (məsələn Gmail) istifadə edərək sadə mətn e‑mailinin necə göndəriləcəyini göstərir.
SMTP serveri vasitəsilə Java API ilə Sadə Mətn E‑maili Necə Göndərmək Olar?
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SimpleEmailSender {
public static void main(String[] args) {
// Sender's and recipient's email ID
String from = "your.email@gmail.com";
String to = "recipient.email@example.com";
// SMTP server configuration (for Gmail)
String host = "smtp.gmail.com";
final String username = "your.email@gmail.com";
final String password = "your-app-password"; // Use an App Password for Gmail
// Setup mail server properties
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true"); // Use TLS
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "587");
// Get the Session object and pass username and password
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object
Message message = new MimeMessage(session);
// Set From: header field
message.setFrom(new InternetAddress(from));
// Set To: header field
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Hello from JavaMail API");
// Set the actual message body
message.setText("This is a test email sent programmatically using the JavaMail API.");
// Send message
Transport.send(message);
System.out.println("Email sent successfully!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Java vasitəsilə E‑mail Axtarışı və Filtrlənməsi
Açıq mənbəli JavaMail kitabxanası Java tətbiqləri daxilində qovluqdakı e‑mail mesajlarını müxtəlif meyarlara (göndərici, mövzu, tarix, bayraqlar) əsasən axtarmaq üçün tam dəstək verir. Bu, e‑mail müştəriləri və ya avtomatlaşdırma tətbiqləri hazırlayarkən xüsusilə faydalıdır. AndTerm, OrTerm, NotTerm vasitəsilə bir neçə axtarış şərtini (VƏ, VƏ YA, DEYİL) birləşdirə bilərsiniz. Aşağıdakı nümunə Java əmrləri ilə müəyyən bir göndəricidən mesajları necə axtarmağı göstərir.
Müəyyən Göndəricidən Mesajları Java Tətbiqlərində Necə Axtarmaq Olar?
Store store = session.getStore("imap");
store.connect("imap.example.com", username, password);
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
// Search for messages from a specific sender
SearchTerm senderTerm = new FromStringTerm("alerts@example.com");
Message[] found = inbox.search(senderTerm);
for (Message m : found) {
System.out.println("Subject: " + m.getSubject());
}
inbox.close(false);
store.close();
SMTP, IMAP, POP3 Protokol Dəstəyi
Açıq mənbəli JavaMail standart olaraq mesajların göndərilməsi üçün SMTP (Sadə Poçt Transfer Protokolu), sadə e‑mail alınması üçün POP3 (Poçt Ofisi Protokolu 3) və daha inkişaf etmiş e‑mail girişi (qovluqlar, qismən yükləmə) üçün IMAP (İnternet Mesaj Giriş Protokolu) kimi ən çox istifadə olunan üç e‑mail protokolunu dəstəkləyir. Bundan əlavə, SMTPS, POP3S, IMAPS kimi təhlükəsiz variantları da dəstəkləyir və xüsusi provayderlər üçün genişləndirilə bilər.
Java vasitəsilə İnkişaf etmiş Doğrulama və Təhlükəsizlik
Açıq mənbəli JavaMail e‑mail serverləri ilə təhlükəsiz əlaqəni dəstəkləyir, bu da bu günün təhlükəsizlik‑oriyentasiya edilmiş mühitində vacibdir. Kitabxana TLS (Transport Layer Security) dəstəyi verir ki, bu da tətbiqiniz ilə poçt serveri arasındakı rabitə kanalını şifrələyir. Həmçinin TLS‑in əvvəlcəsi olan SSL (Secure Sockets Layer) dəstəyi var və təhlükəsiz bağlantı qurmaq üçün istifadə olunur. Kitabxana, giriş tələb edən serverlərə qoşulmaq üçün standart istifadəçi adı/parol doğrulamasını da dəstəkləyir.