ईमेल में अटैचमेंट भेजने का तरीका जानना बहुत महत्वपूर्ण है क्योंकि अधिकांश एप्लिकेशन में शेयरिंग फीचर होते हैं। इसलिए व्यावहारिक अनुभव होना महत्वपूर्ण है।
इस पोस्ट में, हम देखेंगे कि स्विफ्ट का उपयोग करके मेल में अटैचमेंट कैसे भेजा जाता है।
तो, चलिए शुरू करते हैं।
इसके लिए, हम MFMailComposeViewController का उपयोग करेंगे, जो एक मानक दृश्य नियंत्रक है, जिसका इंटरफ़ेस उपयोगकर्ता को ईमेल संदेशों को प्रबंधित करने, संपादित करने और भेजने की सुविधा देता है।
आप इसके बारे में यहाँ और अधिक पढ़ सकते हैं https://developer.apple.com/documentation/messageui/mfmailcomposeviewcontroller
हम MFMailComposeResult से परिणामों को संभालने के लिए MFMailComposeViewControllerDelegate का भी उपयोग करेंगे।
आप इसके बारे में यहां https://developer.apple.com/documentation/messageui/mfmailcomposeviewcontrollerdelegate
पढ़ सकते हैं।हम समझने के लिए एक नमूना आवेदन तैयार करेंगे,
चरण 1 - ओपन एक्सकोड → सिंगल व्यू एप्लिकेशन → इसे ईमेल अटैचमेंट नाम दें
चरण 2 - मेन.स्टोरीबोर्ड खोलें और एक बटन नाम जोड़ें जैसा कि नीचे दिखाया गया है, यह मेल भेजता है,
चरण 3 − @IBAction बनाएं और इसे btnSendMail नाम दें, जैसा कि नीचे दिया गया है
@IBAction func btnSendMail(_ प्रेषक:कोई भी) { }
चरण 4 - ViewController.swift में, MessageUI आयात करें
<पूर्व>संदेश आयात करेंयूआईचरण 5 - MFMailComposeViewControllerDelegate पर कक्षा की पुष्टि करें
क्लास व्यू कंट्रोलर:UIViewController, MFMailComposeViewControllerDelegate
चरण 6 - प्रोजेक्ट में अटैचमेंट फ़ाइल जोड़ें,
चरण 7 - btnSendMail में फ़ंक्शन के नीचे लिखें,
@IBAction func btnSendMail(_ sender:Any) { if MFMailComposeViewController.canSendMail() { मेल करें =MFMailComposeViewController() mail.setToRecipients(["[email protected]"]) mail.setSubject("GREETING") मेल .setMessageBody ("ट्यूटोरियल पॉइंट में आपका स्वागत है!", isHTML:true) mail.mailComposeDelegate =self // अटैचमेंट जोड़ें अगर filePath =Bundle.main.path (forResource:"sampleData", ofType:"json") { अगर डेटा दें =NSData (सामग्रीऑफ़फ़ाइल:फ़ाइलपाथ) { mail.addAttachmentData (डेटा के रूप में डेटा, माइम टाइप:"एप्लिकेशन/जेसन", फ़ाइल नाम:"नमूनाडेटा.जेसन")}} वर्तमान (मेल, एनिमेटेड:सत्य)} अन्य {प्रिंट ("ईमेल नहीं कर सकता" भेजा जा सकता है") }}
और आपका काम हो गया !!
लेकिन हमें अन्य शर्तों को भी संभालने की जरूरत है, जैसे कि भेजा गया, रद्द किया गया या विफल हुआ संदेश। इसके लिए केवल हमने उपरोक्त प्रोटोकॉल का पालन किया है,
आइए प्रतिनिधि विधियों को लागू करें,
func mailComposeController(_ नियंत्रक:MFMailComposeViewController, didFinishWith परिणाम:MFMailComposeResult, त्रुटि:त्रुटि?) {अगर _ =त्रुटि {स्वयं। खारिज (एनिमेटेड:सत्य, पूर्णता:शून्य)} परिणाम स्विच करें {मामला। रद्द:प्रिंट ( "रद्द") ब्रेक केस। भेजा गया:प्रिंट ("मेल सफलतापूर्वक भेजा गया") ब्रेक केस। विफल:प्रिंट ("मेल भेजना विफल") ब्रेक डिफॉल्ट:ब्रेक} कंट्रोलर। खारिज (एनिमेटेड:सत्य, पूर्णता:शून्य)}पूर्व>और आपका काम हो गया !!
प्रोग्राम को वास्तविक डिवाइस में चलाएं,
पूरा कोड
आयात करें @gmail.com"]) mail.setSubject("GREETING") mail.setMessageBody("Welcome to Tutorials Point!", isHTML:true) mail.mailComposeDelegate =self if let filePath =Bundle.main.path(forResource:"sampleData ", ऑफ टाइप:"जेसन") {अगर डेटा दें =एनएसडीटा (सामग्रीऑफफाइल:फाइलपाथ) {mail.addAttachmentData (डेटा के रूप में डेटा, माइम टाइप:"एप्लिकेशन/जेसन", फ़ाइल नाम:"नमूनाडेटा। जेसन")}} वर्तमान (मेल, एनिमेटेड:सच)} और {प्रिंट ("ईमेल नहीं भेजा जा सकता")}} func mailComposeController(_ नियंत्रक:MFMailComposeViewController, didFinishWith परिणाम:MFMailComposeResu लेफ्टिनेंट, त्रुटि:त्रुटि?) {अगर _ =त्रुटि {स्वयं। खारिज (एनिमेटेड:सत्य, पूर्णता:शून्य)} स्विच परिणाम {केस। रद्द:प्रिंट ("रद्द") ब्रेक केस। भेजा गया:प्रिंट ("मेल भेजा गया" सफ़लतापूर्वक") ब्रेक केस .असफल:प्रिंट ("मेल भेजना विफल") ब्रेक डिफॉल्ट:ब्रेक } कंट्रोलर.डिस्मिस (एनिमेटेड:ट्रू, कंप्लीशन:nil) }}