ในการส่งอีเมลจากแอปพลิเคชันของเรา เราจำเป็นต้องใช้ URL Schemes และการดำเนินการบางอย่างเกี่ยวกับเหตุการณ์ที่จะส่งอีเมล เราไม่สามารถส่งอีเมลจากแอปพลิเคชันได้จริงๆ เว้นแต่จะเป็นแอปพลิเคชันการส่งจดหมายและเราใช้กรอบงาน MessageUI ของ iOS แต่เราสามารถเปิดแอปอีเมลบางแอปจากแอปพลิเคชันของเราด้วยอีเมลและหัวเรื่องที่กรอกไว้ล่วงหน้าได้
เราจะเห็นวิธีการทั้งสองวิธีนี้
มาดูกันว่าเราจะเปิดแอป MAIL ของ iOS ได้อย่างไรพร้อมตัวอย่าง
-
สร้างโครงการและบนตัวควบคุมมุมมองแรก
-
เพิ่มปุ่มและเปลี่ยนข้อความเพื่อเปิด "เปิดอีเมล" สร้างการดำเนินการในคลาส ViewController.swift
-
เพิ่มปุ่มอื่นที่เรียกว่า "เปิดเมล MF" และสร้างการทำงานด้วย
วิธีที่ 1 − การใช้ URL Scheme และแอปส่งเมลอื่นๆ
func sendEmail(email:String) { if let url = URL(string: "mailto:\(email)") { if #available(iOS 10.0, *) { UIApplication.shared.open(url) } else { UIApplication.shared.openURL(url) } } }
ฟังก์ชันนี้สามารถเรียกใช้เพื่อส่งอีเมลไปยัง ID อีเมลบางส่วน เรียกใช้ฟังก์ชันนี้ภายในเนื้อหาของปุ่มแรก "เปิดอีเมล" ด้านล่างเป็นผลลัพธ์
วิธีที่ 2 - การใช้ MFMailCompose ของ MessageUI Framework
func sendMFmail(email: String) { let mailVC = MFMailComposeViewController() mailVC.mailComposeDelegate = self mailVC.setToRecipients([email]) mailVC.setSubject("Testing sending email") mailVC.setMessageBody("Test Body of email", isHTML: false) present(mailVC, animated: true, completion: nil) }
ฟังก์ชันนี้สามารถเรียกได้ภายในเนื้อหาของปุ่ม "open MF mail" ที่ดำเนินการคล้ายกับวิธีที่หนึ่ง และให้ผลลัพธ์ดังต่อไปนี้
หมายเหตุ - แอปเหล่านี้ไม่สามารถเรียกใช้บนโปรแกรมจำลองได้ เนื่องจากโปรแกรมจำลองอีเมลไม่รองรับและคุณจำเป็นต้องมีอุปกรณ์จริง