Kotlin पर ईमेल भेजना: लाइब्रेरी और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin पर ईमेल भेजना: लाइब्रेरी और टूल्स के लिए पूर्ण गाइड



ईमेल भेजना आधुनिक वेब एप्लिकेशन में एक प्रमुख कार्य है: पंजीकरण पुष्टि से लेकर सूचनाओं और मार्केटिंग मेलिंग तक। Kotlin, JVM के लिए एक आधुनिक भाषा के रूप में, मेल के साथ काम करने के लिए कई दृष्टिकोण प्रदान करता है। इस लेख में हम तीन मुख्य विकल्पों पर चर्चा करेंगे: क्लासिक JavaMail, एसिंक्रोनस Ktor Client और क्लाउड सेवा SendGrid। आप सीखेंगे कि सरल टेक्स्ट और HTML ईमेल कैसे भेजें, फ़ाइलें कैसे अटैच करें और त्रुटियों को कैसे संभालें।



1. JavaMail — सिद्ध मानक



JavaMail, Java/Kotlin इकोसिस्टम में ईमेल के साथ काम करने के लिए एक मानक लाइब्रेरी है। यह SMTP, POP3 और IMAP प्रोटोकॉल के साथ-साथ SSL/TLS एन्क्रिप्शन का समर्थन करता है। Kotlin प्रोजेक्ट के लिए, build.gradle.kts में डिपेंडेंसी जोड़ना पर्याप्त है:



dependencies {    implementation("com.sun.mail:jakarta.mail:2.0.1")}


प्रमाणीकरण के साथ SMTP के माध्यम से एक सरल टेक्स्ट ईमेल भेजने का उदाहरण:



import jakarta.mail.*import jakarta.mail.internet.InternetAddressimport jakarta.mail.internet.MimeMessageimport java.util.Properties

fun sendEmailViaJavaMail() { val props = Properties().apply { put("mail.smtp.host", "smtp.gmail.com") put("mail.smtp.port", "587") put("mail.smtp.auth", "true") put("mail.smtp.starttls.enable", "true") }

val session = Session.getInstance(props, object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { return PasswordAuthentication("your-email@gmail.com", "your-app-password") } })

try { val message = MimeMessage(session).apply { setFrom(InternetAddress("your-email@gmail.com")) setRecipient(Message.RecipientType.TO, InternetAddress("recipient@example.com")) subject = "Kotlin से नमस्ते!" setText("यह JavaMail के साथ भेजा गया एक परीक्षण ईमेल है।") } Transport.send(message) println("ईमेल सफलतापूर्वक भेजा गया!") } catch (e: MessagingException) { println("भेजने में त्रुटि: ${e.message}") }}


महत्वपूर्ण: Gmail के लिए, मुख्य पासवर्ड के बजाय ऐप पासवर्ड (App Password) का उपयोग करना आवश्यक है। आप Yandex, Mail.ru या अपने स्वयं के सर्वर के लिए SMTP भी कॉन्फ़िगर कर सकते हैं।



2. Ktor Client — एसिंक्रोनस दृष्टिकोण



यदि आप वेब एप्लिकेशन बनाने के लिए Ktor फ्रेमवर्क का उपयोग कर रहे हैं, तो आप मेल API (जैसे Mailgun, SendGrid, Postmark) के लिए HTTP अनुरोधों के माध्यम से ईमेल भेज सकते हैं। यह एसिंक्रोनस सेवाओं और माइक्रोसर्विस आर्किटेक्चर के लिए सुविधाजनक है।



डिपेंडेंसी जोड़ें:



dependencies {    implementation("io.ktor:ktor-client-core:2.3.7")    implementation("io.ktor:ktor-client-cio:2.3.7")    implementation("io.ktor:ktor-client-content-negotiation:2.3.7")    implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.7")}


SendGrid API के माध्यम से ईमेल भेजने का उदाहरण:



import io.ktor.client.*import io.ktor.client.call.*import io.ktor.client.plugins.contentnegotiation.*import io.ktor.client.request.*import io.ktor.http.*import io.ktor.serialization.kotlinx.json.*import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json

@Serializabledata class EmailRequest( val personalizations: List<Personalization>, val from: EmailAddress, val subject: String, val content: List<Content>)

@Serializabledata class Personalization(val to: List<EmailAddress>)

@Serializabledata class EmailAddress(val email: String)

@Serializabledata class Content(val type: String, val value: String)

suspend fun sendEmailViaSendGrid() { val client = HttpClient(CIO) { install(ContentNegotiation) {

अनुशंसाएँ