ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS 앱개발] 앱에서 이메일 보내기 예제
    iOS/Swift 2022. 12. 5. 18:23

     

    //
    //  ViewController.swift
    //  sendEmail
    //
    //  Created by 박단비 on 2022/12/05.
    //
    
    import MessageUI
    import SafariServices
    import UIKit
    
    class ViewController: UIViewController, UINavigationControllerDelegate, MFMailComposeViewControllerDelegate {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            let button = UIButton(frame: CGRect(x:0, y:0, width: 220, height: 50))
            view.addSubview(button)
            button.setTitle("Contact Us", for: .normal)
            button.backgroundColor = .link
            button.setTitleColor(.white, for: .normal)
            button.center = view.center
            button.addTarget(self, action: #selector(didTapButton), for: .touchUpInside)
        }
        @objc private func didTapButton(){
            if MFMailComposeViewController.canSendMail(){
                let vc = MFMailComposeViewController()
                vc.delegate = self
                vc.setSubject("Contact Us / Feedback")
                vc.setToRecipients(["hello@danbee.io"])
                vc.setMessageBody("<h1>Hello world</h1>", isHTML: true)
                //vc.addAttachmentData(<#T##attachment: Data##Data#>, mimeType: <#T##String#>, fileName: <#T##String#>) // 버그 수집, 스크린샷 등 첨부파일 기능
                present(UINavigationController(rootViewController: vc),
                        animated: true)
            }
            else {
                guard let url = URL(string: "https://www.google.com") else {
                    return
                }
                let vc = SFSafariViewController(url: url)
                present(vc, animated: true)
            }
             
        }
        
        func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?){
            controller.dismiss(animated: true, completion: nil)
        }
    }

    아쉽지만 시뮬레이터에 Mail 앱이 없기 때문에 실제 기기를 연동해서 테스트 하지 않으면 메일앱이 잘 실행되는지 확인 할 수 없다.

    추후에 기기를 연결해서 테스트 해보기.

    일단 소스 자체는 오류없기 때문에 기기 연동시 잘 실행될 것으로 예상된다.

    'iOS > Swift' 카테고리의 다른 글

    [Swift] Xcode 14 에서 SwiftUIX 불러오기  (0) 2022.12.16
    [Swift] 상속  (0) 2022.12.04
    [Swift] 객체 생성자, 해제자  (0) 2022.12.04
    [Swift] 제네릭 (Generics)  (0) 2022.12.02
    [Swift] 메소드 (Methods)  (0) 2022.12.02

    댓글

Today
Designed by Danbee Park.