जावा पर ईमेल भेजना: लाइब्रेरीज़ का अवलोकन और कोड उदाहरण
\n\nईमेल भेजना कॉर्पोरेट और वेब एप्लिकेशन में एक बुनियादी कार्य है। Java इकोसिस्टम में SMTP प्रोटोकॉल के साथ काम करने के लिए कई सिद्ध टूल मौजूद हैं। इस लेख में, हम दो मुख्य लाइब्रेरीज़ पर चर्चा करेंगे: मानक JavaMail (Jakarta Mail) और अधिक आधुनिक Simple Java Mail। आप सीखेंगे कि SMTP सर्वर से कनेक्शन कैसे सेट करें, एक साधारण ईमेल कैसे भेजें, HTML मार्कअप और अटैचमेंट कैसे जोड़ें।
\n\n1. Jakarta Mail (पूर्व में JavaMail API)
\n\nJakarta Mail (पूर्व नाम JavaMail API) Java में ईमेल के साथ काम करने के लिए आधिकारिक विनिर्देश है। यह Jakarta EE का हिस्सा है और किसी भी Java प्रोजेक्ट में उपयोग किया जा सकता है। SMTP सर्वर से कनेक्ट करने के लिए pom.xml (Maven) या build.gradle (Gradle) में डिपेंडेंसी जोड़ना आवश्यक है।
डिपेंडेंसी जोड़ना (Maven)
\n<dependency>\n <groupId>com.sun.mail</groupId>\n <artifactId>javax.mail</artifactId>\n <version>1.6.2</version>\n</dependency>\n\nउदाहरण: सादा टेक्स्ट ईमेल भेजना
\nimport javax.mail.*;\nimport javax.mail.internet.*;\nimport java.util.Properties;\n\npublic class EmailSender {\n public static void main(String[] args) {\n final String username = "your-email@gmail.com";\n final String password = "your-app-password";\n\n Properties props = new Properties();\n props.put("mail.smtp.auth", "true");\n props.put("mail.smtp.starttls.enable", "true");\n props.put("mail.smtp.host", "smtp.gmail.com");\n props.put("mail.smtp.port", "587");\n\n Session session = Session.getInstance(props,\n new Authenticator() {\n @Override\n protected PasswordAuthentication getPasswordAuthentication() {\n return new PasswordAuthentication(username, password);\n }\n });\n\n try {\n Message message = new MimeMessage(session);\n message.setFrom(new InternetAddress(username));\n message.setRecipients(Message.RecipientType.TO,\n InternetAddress.parse("recipient@example.com"));\n message.setSubject("जावा से परीक्षण ईमेल");\n message.setText("नमस्ते! यह ईमेल JavaMail API का उपयोग करके भेजा गया है।");\n\n Transport.send(message);\n System.out.println("ईमेल सफलतापूर्वक भेजा गया!");\n } catch (MessagingException e) {\n e.printStackTrace();\n }\n }\n}\n\n- \n
- Properties — SMTP सेटिंग्स: होस्ट, पोर्ट, प्रमाणीकरण, TLS। \n
- Session — सर्वर के साथ सत्र, प्रमाणीकरणकर्ता के साथ बनाया गया। \n
- MimeMessage — ईमेल ऑब्जेक्ट, जिसमें प्रेषक, प्राप्तकर्ता, विषय और बॉडी सेट की जाती है। \n
- Transport.send() — SMTP के माध्यम से ईमेल भेजना। \n
अटैचमेंट के साथ HTML ईमेल भेजना
\nimport javax.mail.*;\nimport javax.mail.internet.*;\nimport javax.activation.*;\n\npublic class HtmlEmailWithAttachment {\n public static void main(String[] args) throws Exception {\n Properties props = new Properties();\n props.put("mail.smtp.auth", "true");\n props.put("mail.smtp.starttls.enable", "true");\n props.put("mail.smtp.host", "smtp.gmail.com");\n props.put("mail.smtp.port", "587");\n\n Session session = Session.getInstance(props, new Authenticator() {\n @Override\n protected PasswordAuthentication getPasswordAuthentication() {\n return new PasswordAuthentication("your-email@gmail.com", "your-password");\n }\n });\n\n MimeMessage message = new MimeMessage(session);\n message.setFrom(new InternetAddress("your-