-
[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