Swift(스위프트) iOS 프로그래밍에서 버튼에 메일을 보내는 기능을 할당하는 예제입니다.
추가하고자 하는 뷰 컨트롤러에 다음을 import
합니다 (윗부분에 작성).
import MessageUI
아래 코드를 해당 뷰 컨트롤러의 extension
으로 추가합니다.
extension TargetViewController: MFMailComposeViewControllerDelegate { @IBAction func launchEmail(sender: UIButton) { // 1 guard MFMailComposeViewController.canSendMail() else { // 사용자의 메일 계정이 설정되어 있지 않아 메일을 보낼 수 없다는 경고 메시지 추가 return } // 2 let emailTitle = "앱 피드백" // 메일 제목 let messageBody = """ OS Version: \(UIDevice.current.systemVersion) Device: (디바이스 알아내는 기능) 메일 내용 템플릿 """ // 3 let toRecipents = ["메일주소@도메인.com"] let mc: MFMailComposeViewController = MFMailComposeViewController() mc.mailComposeDelegate = self mc.setSubject(emailTitle) mc.setMessageBody(messageBody, isHTML: false) mc.setToRecipients(toRecipents) self.present(mc, animated: true, completion: nil) } // 4 @objc(mailComposeController:didFinishWithResult:error:) func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult,error: Error?) { controller.dismiss(animated: true) } }
- 앱 사용자의 아이폰 등에 메일 계정 설정이 되어있지 않은 경우 메일을 보낼 수 없으므로
UIAlert
등을 이용해 경고 메시지를 표시합니다. - 기본 제목과 내용을 설정합니다.
- 받을 이메일 주소를 설정합니다.
MFMailComposeViewController
는 이메일 창이 나타나는 컨트롤러입니다. 이 컨트롤러 내부 변수에 메일 주소, 제목, 내용을 지정합니다. 다음 이 뷰 컨트롤러에MFMailComposeViewController
가 나타나도록present
합니다.
- 메일이 취소된 경우
MFMailComposeViewController
를 사라지게 합니다.
위에서 ‘디바이스 알아내는 기능’은 이 글을 참조하세요.
위의 @IBAction func launchEmail
를 스토리보드의 버튼과 연결합니다.
빨간 버튼을 클릭하면 (메일 계정이 설정된 경우) 아래와 같은 메일 작성 창이 뜹니다.
0개의 댓글