Swift (iOS/macOS) पर ईमेल भेजना: MFMailComposeViewController और SMTP

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

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

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

Swift (iOS/macOS) पर ईमेल भेजना: पूरी मार्गदर्शिका

\n\n

ईमेल भेजना आधुनिक मोबाइल और डेस्कटॉप अनुप्रयोगों के प्रमुख कार्यों में से एक है। Apple के Swift (iOS/macOS) इकोसिस्टम में दो मुख्य दृष्टिकोण हैं: डिवाइस के मेल क्लाइंट के माध्यम से सरल भेजने के लिए अंतर्निहित नियंत्रक MFMailComposeViewController का उपयोग करना, और SwiftSMTP जैसी तृतीय-पक्ष लाइब्रेरी के माध्यम से SMTP प्रोटोकॉल पर काम करना। इस लेख में, हम दोनों विधियों, उनके लाभों, सीमाओं पर विस्तार से चर्चा करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।

\n\n

1. MFMailComposeViewController के माध्यम से ईमेल भेजना

\n\n

MFMailComposeViewController MessageUI.framework फ्रेमवर्क का एक घटक है, जो ईमेल बनाने और भेजने के लिए तैयार इंटरफ़ेस प्रदान करता है। यह विधि तब आदर्श है जब SMTP सर्वर सेटअप किए बिना शीघ्रता से भेजने की आवश्यकता हो।

\n\n

लाभ और सीमाएँ

\n
    \n
  • लाभ: SMTP सेटअप की आवश्यकता नहीं, HTML सामग्री, अटैचमेंट का समर्थन करता है, डिवाइस पर कॉन्फ़िगर किए गए मेल खाते का स्वचालित रूप से उपयोग करता है।
  • \n
  • सीमाएँ: केवल वास्तविक उपकरणों पर काम करता है (सिम्युलेटर में नहीं), कॉन्फ़िगर किए गए मेल खाते की आवश्यकता है, UI के बिना पृष्ठभूमि भेजने के लिए उपयुक्त नहीं है।
  • \n
\n\n

कार्यान्वयन उदाहरण

\n

आरंभ करने के लिए, फ्रेमवर्क शामिल करें और डेलिगेट लागू करें:

\n\n
import UIKit\nimport MessageUI\n\nclass ViewController: UIViewController, MFMailComposeViewControllerDelegate {\n\n    @IBAction func sendEmailTapped(_ sender: UIButton) {\n        guard MFMailComposeViewController.canSendMail() else {\n            print("डिवाइस पर मेल कॉन्फ़िगर नहीं है")\n            return\n        }\n\n        let mailComposer = MFMailComposeViewController()\n        mailComposer.mailComposeDelegate = self\n        mailComposer.setToRecipients(["recipient@example.com"])\n        mailComposer.setSubject("Swift से नमस्ते!")\n        mailComposer.setMessageBody("<h1>परीक्षण ईमेल</h1><p>यह HTML सामग्री है।</p>", isHTML: true)\n\n        // अटैचमेंट जोड़ना\n        if let fileData = "टेक्स्ट फ़ाइल".data(using: .utf8) {\n            mailComposer.addAttachmentData(fileData, mimeType: "text/plain", fileName: "example.txt")\n        }\n\n        present(mailComposer, animated: true, completion: nil)\n    }\n\n    // परिणाम को संभालने के लिए डेलिगेट\n    func mailComposeController(_ controller: MFMailComposeViewController,\n                               didFinishWith result: MFMailComposeResult,\n                               error: Error?) {\n        switch result {\n        case .cancelled:\n            print("भेजना रद्द कर दिया गया")\n        case .saved:\n            print("ईमेल ड्राफ्ट के रूप में सहेजा गया")\n        case .sent:\n            print("ईमेल भेज दिया गया")\n        case .failed:\n            print("भेजने में त्रुटि: \\(error?.localizedDescription ?? "अज्ञात")")\n        @unknown default:\n            break\n        }\n        controller.dismiss(animated: true, completion: nil)\n    }\n}
\n\n

2. SwiftSMTP लाइब्रेरी के साथ SMTP के माध्यम से ईमेल भेजना

\n\n

यदि उपयोगकर्ता की भागीदारी के बिना प्रोग्रामेटिक रूप से ईमेल भेजने की आवश्यकता है (उदाहरण के लिए, पंजीकरण ईमेल या सूचनाओं के लिए), तो SMTP प्रोटोकॉल का उपयोग करें। Swift के लिए एक लोकप्रिय लाइब्रेरी SwiftSMTP है। यह TLS/SSL, प्रमाणीकरण और अटैचमेंट के साथ काम करने का समर्थन करती है।

\n\n

Swift Package Manager के माध्यम से स्थापना

\n

Package.swift में निर्भरता जोड़ें:

\n
dependencies: [\n    .package(url: "https://github.com/Kitura/Swift-SMTP.git", from: "2.0.0")\n]
\n\n

Gmail SMTP सर्वर के माध्यम से भेजने का उदाहरण

\n
import SwiftSMTP\n\nfunc sendEmailViaSMTP() {\n    let smtp = SMTP(\n        hostname: "smtp.gmail.com",     // SMTP-सर्वर\n        email: "your-email@gmail.com",\n        password: "your-app-passwo                    

अनुशंसाएँ