إرسال البريد الإلكتروني في Java: مكتبات JavaMail و Simple Java Mail

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

إرسال البريد الإلكتروني في Java: نظرة عامة على المكتبات وأمثلة الكود



يعد إرسال رسائل البريد الإلكتروني إحدى المهام الأساسية في التطبيقات المؤسسية وتطبيقات الويب. في نظام Java البيئي، توجد العديد من الأدوات الموثوقة للعمل مع بروتوكول SMTP. في هذه المقالة، سنناقش مكتبتين رئيسيتين: JavaMail (Jakarta Mail) القياسية و Simple Java Mail الأكثر حداثة. ستتعلم كيفية إعداد الاتصال بخادم SMTP، وإرسال بريد إلكتروني بسيط، وإضافة تنسيق HTML والمرفقات.



1. Jakarta Mail (المعروفة سابقًا باسم JavaMail API)



Jakarta Mail (الاسم السابق — JavaMail API) هي المواصفات الرسمية للعمل مع البريد الإلكتروني في Java. وهي جزء من Jakarta EE ويمكن استخدامها في أي مشاريع Java. للاتصال بخادم SMTP، يلزم إضافة التبعيات في pom.xml (Maven) أو build.gradle (Gradle).



إضافة التبعية (Maven)

<dependency>    <groupId>com.sun.mail</groupId>    <artifactId>javax.mail</artifactId>    <version>1.6.2</version></dependency>


مثال: إرسال بريد إلكتروني نصي بسيط

import javax.mail.*;import javax.mail.internet.*;import java.util.Properties;

public class EmailSender { public static void main(String[] args) { final String username = "your-email@gmail.com"; final String password = "your-app-password";

Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587");

Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } });

try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com")); message.setSubject("رسالة اختبار من Java"); message.setText("مرحبًا! هذه الرسالة مرسلة باستخدام JavaMail API.");

Transport.send(message); System.out.println("تم إرسال الرسالة بنجاح!"); } catch (MessagingException e) { e.printStackTrace(); } }}


  • Properties — إعدادات SMTP: المضيف، المنفذ، المصادقة، TLS.
  • Session — جلسة مع الخادم، يتم إنشاؤها باستخدام أداة المصادقة.
  • MimeMessage — كائن الرسالة، حيث يتم تعيين المرسل والمستلم والموضوع والمحتوى.
  • Transport.send() — إرسال الرسالة عبر SMTP.


إرسال بريد إلكتروني بتنسيق HTML مع مرفق

import javax.mail.*;import javax.mail.internet.*;import javax.activation.*;

public class HtmlEmailWithAttachment { public static void main(String[] args) throws Exception { Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587");

Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("your-email@gmail.com", "your-password"); } });

MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("your-

توصيات