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)
    }
    
}
  1.  앱 사용자의 아이폰 등에 메일 계정 설정이 되어있지 않은 경우 메일을 보낼 수 없으므로 UIAlert 등을 이용해 경고 메시지를 표시합니다.
  2. 기본 제목과 내용을 설정합니다.
  3. 받을 이메일 주소를 설정합니다.
    • MFMailComposeViewController는 이메일 창이 나타나는 컨트롤러입니다. 이 컨트롤러 내부 변수에 메일 주소, 제목, 내용을 지정합니다. 다음 이 뷰 컨트롤러에 MFMailComposeViewController 가 나타나도록 present 합니다.
  4. 메일이 취소된 경우 MFMailComposeViewController를 사라지게 합니다.

위에서 ‘디바이스 알아내는 기능’은 이 글을 참조하세요.

 

위의 @IBAction func launchEmail 를 스토리보드의 버튼과 연결합니다.

 

빨간 버튼을 클릭하면 (메일 계정이 설정된 경우) 아래와 같은 메일 작성 창이 뜹니다.

 

문의 | 코멘트 또는 yoonbumtae@gmail.com


카테고리: Swift


0개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다