आईओएस देव - ईमेल भेजें
21वीं सदी में ईमेल सबसे अच्छे संचार माध्यमों में से एक है। जानकारी कुछ ही सेकंड में प्राप्तकर्ताओं के समूह तक पहुंचाई जा सकती है। क्या आपने कभी ईमेल फ़ंक्शन को अपने ऐप में एकीकृत करने के बारे में सोचा है?
MessageUI
डेवलपर्स के लिए ऐप्पल ने उपयोग में आसान ढांचा प्रदान किया है। हम निम्नलिखित गुणों को कॉन्फ़िगर कर सकते हैं:
- प्राप्तकर्ताओं की सूची
- विषय
- संदेश का मुख्य हिस्सा
- संलग्नक
चरण-दर-चरण प्रक्रिया
चरण 1) जांचें कि डिवाइस ईमेल भेज सकता है या नहीं
import MessageUI
// Confirm the user can send email
guard MFMailComposeViewController.canSendMail() else { return }
1. ऐप उपयोगकर्ता ने अभी तक सिस्टम मेलिंग ऐप में अपना ईमेल अकाउंट सेट नहीं किया है
2. आईओएस एमडीएम प्रोफाइल ने इस स्टैक ओवरफ्लो उत्तर का जिक्र करते हुए मेलिंग फ़ंक्शन को अक्षम कर दिया है।
चरण 2) MFMailComposeViewController उदाहरण को कॉन्फ़िगर करें
// Construct the `MFMailComposeViewController` instance
let mfMailComposeViewController = MFMailComposeViewController()
// To set the recipients list, including the to, cc and bcc fields
mfMailComposeViewController.setToRecipients(["[email protected]"])
mfMailComposeViewController.setCcRecipients(["[email protected]"])
mfMailComposeViewController.setBccRecipients(["[email protected]"])
// To set the email subject
mfMailComposeViewController.setSubject("Example - Subject Text")
// To set the email message body; It can be either plain text or HTML message
mfMailComposeViewController.setMessageBody("<h1>Example - HTML message body </h1>", isHTML: true)
// Presenet the `MFMailComposeViewController` to the app user
present(mfMailComposeViewController, animated: true)
- प्राप्तकर्ताओं की सूची, सहित
to
,cc
औरbcc
- विषय क्षेत्र
- संदेश का मुख्य भाग सादे पाठ या HTML संदेश में
चरण 3) MFMailComposeViewController को मैन्युअल रूप से खारिज करें
// We must implement the `MFMailComposeViewControllerDelegate` in order to handle the user's action on the mail compo
mfMailComposeViewController.mailComposeDelegate = self
extension DemoViewController: MFMailComposeViewControllerDelegate {
// This is the only callback from the Mail composer to notify the app that the user has carried out certain action
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
switch result {
case .cancelled:
print("The user has dismissed the mail composer and deleted the email draft.")
case .saved:
print("The user has dismissed the mail composer and saved the email draft.")
case .sent:
// The email request is queued in the user's mail app
// There is no guarantee that the email is actually sent out!!!
print("The user has \"sent\" the email out.")
case .failed:
print("The user cannot send out the email")
print("Error of sending out the email: \(error.debugDescription)")
}
controller.dismiss(animated: true)
}
}
result
उपयोगकर्ता की कार्रवाई दिखाने के लिए एक संपत्ति भी है , जिसमें निम्न शामिल हैं:
cancelled
- उपयोगकर्ता ने "रद्द करें" बटन पर क्लिक किया और फिर ईमेल ड्राफ्ट को हटा दियाsaved
- उपयोगकर्ता ने "रद्द करें" बटन पर क्लिक किया और फिर ईमेल ड्राफ्ट को सहेज लियाsent
— उपयोगकर्ता ने ईमेल को *भेज* दिया हैfail
- मेल ऐप में ईमेल कतारबद्ध करने में त्रुटि है
ट्रिक - क्या 'भेजा गया' परिणाम वापस आने पर ईमेल वास्तव में भेजा जाता है?
क्या आपने कोई नेटवर्क कनेक्शन नहीं होने पर ईमेल भेजने का प्रयास किया था, उदाहरण के लिए हवाई जहाज मोड? अरे नहीं ! didFinishWith
कॉलबैक MFMailComposeViewControllerDelegate
वास्तव में एक परिणाम देता है sent
!!!
इसका क्या मतलब है?
नीचे दिए गए Apple प्रलेखन के अनुसार, MFMailComposeViewController
केवल सिस्टम मेल प्रोग्राम को ईमेल भेजने के बजाय इसे बाहर भेजने के लिए अनुरोध भेजें !!!
Apple आधिकारिक दस्तावेज़ीकरण - mailComposeController(_:didFinishWith:त्रुटि:):
यदि उपयोगकर्ता ने इस इंटरफ़ेस द्वारा बनाए गए ईमेल को भेजने का विकल्प चुना है, तो उस ईमेल को उपयोगकर्ता के मेल प्रोग्राम में उस समय तक पंक्तिबद्ध किया जाना चाहिए जब तक कि यह विधि कहलाती है । यदि ईमेल संदेश को पंक्तिबद्ध करते समय कोई त्रुटि उत्पन्न हुई, तो error
पैरामीटर में एक त्रुटि ऑब्जेक्ट होता है जो हुई विफलता के प्रकार को इंगित करता है।
दूसरे शब्दों में, ऐप कभी भी यह नहीं जान सकता है कि ईमेल प्राप्तकर्ताओं को सफलतापूर्वक भेजा गया है या नहीं।
एडवांस फीचर - ईमेल में अटैचमेंट जोड़ना
अधिकांश उपयोग मामलों में अटैचमेंट भेजना एक दुर्लभ कार्य है। हालाँकि, MFMailComposeViewController
हमें किसी भी फ़ाइल स्वरूप में अनुलग्नकों की सूची को रचित ईमेल में संलग्न करने की अनुमति देता है।
// Attach an image to the composed email
let attachmentImageData = UIImage(named: "example_image_name")!.pngData()!
mfMailComposeViewController.addAttachmentData(attachmentImageData, mimeType: "image/png", fileName: "example_file_name")
और अधिक जानें
ईमेल भेजने के और भी कई तरीके हैं। फायरबेस एक्सटेंशन ट्रिगर ईमेल विशिष्ट पूर्व-निर्धारित क्षेत्रों के साथ एक फायरस्टार दस्तावेज़ बनाकर डेवलपर्स को ईमेल भेजने में मदद करने के लिए उपयोग में आसान टूल प्रदान करता है। ट्रिगर ईमेल एक्सटेंशन के बारे में मेरा अन्य ब्लॉग नीचे है। यदि आप इसके बारे में अधिक जानना चाहते हैं तो इसे पढ़ने के लिए आपका स्वागत है।
फायरबेस एक्सटेंशन - ट्रिगर ईमेलनिष्कर्ष
MessageUI
ऐप्पल सिस्टम मेलिंग ऐप को काम सौंपकर ईमेल भेजने में ऐप्स की मदद करने के लिए उपयोग में आसान ढांचा प्रदान करता है । ऐप प्राप्तकर्ताओं की सूची, विषय, संदेश का मुख्य भाग और अनुलग्नक सूची सेट कर सकता है। एक बार जब उपयोगकर्ता के पास कोई कार्रवाई होती है, MFMailComposeViewControllerDelegate
तो परिणाम वापस आ जाता है और ऐप को MFMailComposeViewController
मैन्युअल रूप से खारिज करना पड़ता है।
ध्यान रखें कि sent
परिणाम से MFMailComposeViewControllerDelegate
वास्तव में यह मतलब नहीं है कि ईमेल भेजा गया है। ईमेल अनुरोध केवल सिस्टम मेलिंग ऐप पर कतारबद्ध है!
आशा है कि आप इस ब्लॉग का आनंद लेंगे और आपका दिन अच्छा रहेगा!