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

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

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

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

Kotlin में ईमेल भेजना: लाइब्रेरी और व्यावहारिक उदाहरण

Kotlin एक आधुनिक प्रोग्रामिंग भाषा है जिसका उपयोग सर्वर एप्लिकेशन, बैकएंड और माइक्रोसर्विसेज बनाने में किया जाता है। प्रोग्रामेटिक रूप से ईमेल भेजने की क्षमता कई प्रोजेक्ट्स के लिए एक महत्वपूर्ण फीचर है: नोटिफिकेशन, रजिस्ट्रेशन कन्फर्मेशन, न्यूज़लेटर। इस लेख में हम जानेंगे कि Kotlin में ईमेल भेजने को कैसे सेटअप करें, कौन सी लाइब्रेरी उपयोग करें और SMTP कनेक्शन कैसे कॉन्फ़िगर करें।

Kotlin में ईमेल भेजने के मुख्य तरीके

चूंकि Kotlin JVM पर चलता है, आप किसी भी Java लाइब्रेरी का उपयोग कर सकते हैं। सबसे लोकप्रिय और विश्वसनीय तरीका JavaMail (Jakarta Mail) है। एक वैकल्पिक तरीका Ktor Client (Ktor फ्रेमवर्क का हिस्सा) है, जो सीधे SMTP के साथ काम कर सकता है। आइए दोनों तरीकों को समझते हैं।

1. Jakarta Mail (JavaMail) के साथ ईमेल भेजना

Jakarta Mail (पहले JavaMail) Java इकोसिस्टम में ईमेल के लिए मानक लाइब्रेरी है। यह Kotlin के लिए एकदम सही है क्योंकि यह JVM के साथ पूरी तरह से संगत है। आपको build.gradle.kts में डिपेंडेंसी जोड़नी होगी:

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

लाइब्रेरी जोड़ने के बाद, आप एक सरल फंक्शन लिख सकते हैं:

import jakarta.mail.*
import jakarta.mail.internet.InternetAddress
import jakarta.mail.internet.MimeMessage
import java.util.*

fun sendEmail(
    host: String,
    port: Int,
    username: String,
    password: String,
    from: String,
    to: String,
    subject: String,
    body: String
) {
    val props = Properties().apply {
        put("mail.smtp.host", host)
        put("mail.smtp.port", port.toString())
        put("mail.smtp.auth", "true")
        put("mail.smtp.starttls.enable", "true")
    }

    val session = Session.getInstance(props, object : Authenticator() {
        override fun getPasswordAuthentication(): PasswordAuthentication {
            return PasswordAuthentication(username, password)
        }
    })

    try {
        val message = MimeMessage(session).apply {
            setFrom(InternetAddress(from))
            setRecipients(Message.RecipientType.TO, InternetAddress.parse(to))
            setSubject(subject)
            setText(body)
        }
        Transport.send(message)
        println("ईमेल $to पर सफलतापूर्वक भेजा गया")
    } catch (e: MessagingException) {
        println("भेजने में त्रुटि: ${e.message}")
    }
}

फंक्शन को कॉल करें:

fun main() {
    sendEmail(
        host = "smtp.gmail.com",
        port = 587,
        username = "youremail@gmail.com",
        password = "your-app-password",
        from = "youremail@gmail.com",
        to = "recipient@example.com",
        subject = "Kotlin से नमस्ते!",
        body = "यह Kotlin और Jakarta Mail के माध्यम से भेजा गया एक परीक्षण ईमेल है।"
    )
}

2. अटैचमेंट के साथ ईमेल भेजना (Jakarta Mail)

फ़ाइल के साथ ईमेल भेजने के लिए MimeBodyPart और MimeMultipart का उपयोग करें:

import jakarta.mail.internet.MimeBodyPart
import jakarta.mail.internet.MimeMultipart
import java.io.File

fun sendEmailWithAttachment(
    session: Session,
    from: String,
    to: String,
    subject: String,
    body: String,
    attachmentPath: String
) {
    val message = MimeMessage(session).apply {
        setFrom(InternetAddress(from))
        setRecipients(Message.RecipientType.TO, InternetAddress.parse(to))
        setSubject(subject)
    }

    // टेक्स्ट भाग
    val textPart = MimeBodyPart().apply {
        setText(body)
    }

    // अटैचमेंट
    val attachmentPart = MimeBodyPart().apply {
        attachFile(File(attachmentPath))
    }

    // मल्टीपार्ट बनाएं
    val multipart = MimeMultipart().apply {
        addBodyPart(textPart)
        addBodyPart(attachmentPart)
    }

    message.setContent(multipart)
    Transport.send(message)
}

अनुशंसाएँ