iOS에 기본으로 설치된 메일앱을 연동해 메일을 보낼수 있게 해주는 viewcontroller이다

SampleCode

			let emailVC = MFMailComposeViewController()
        
        //기기명 아는것과 다르니 구글검색하면 나옴 ex) iphone12,3 => iphone 11 pro
        emailVC.setSubject("[\\(CompanyConfig.SITE_NAME)] 모바일 독스 버그 리포트 ")
        
        let zipPath = LogFileManager.shared.zipFilePath
        
        if let zipFileData = try? Data(contentsOf: zipPath) {
            print(zipPath)
            emailVC.addAttachmentData(zipFileData, mimeType: "", fileName: "logs.zip")
        }
        let message = """
                    iOS 모바일 DRM
                    모델명: \\(UIDevice().getDeviceIdentifier())
                    iOS Version:\\(UIDevice.current.systemVersion)
                    고객사: \\(CompanyConfig.SITE_NAME)
                    장애내용을 작성해 주세요...
                    """
        emailVC.setMessageBody(message, isHTML: false)
        emailVC.setToRecipients(["[email protected]","[email protected]"])

메일 이벤트에 따라 동작하는 MFMailComposeViewcontrollerDelegate 도있음

//MARK: - 이메일 전송 Delegate
extension SettingViewController : MFMailComposeViewControllerDelegate{
    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
        switch result {
        case .sent:
            log.debug("You sent the mail")
        case .saved:
            log.debug("You saved a draft of this email")
        case .cancelled:
            log.debug("you cancelled sending this email.")
        case .failed:
            log.debug("Mail failed : An Error Occured when trying to compose this email")
        default:
            log.debug("default case ")
            
        }
        self.dismiss(animated: true)
    }
}