iOS/Swift
[iOS 앱개발] 앱에서 이메일 보내기 예제
단비_danbee
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 앱이 없기 때문에 실제 기기를 연동해서 테스트 하지 않으면 메일앱이 잘 실행되는지 확인 할 수 없다.
추후에 기기를 연결해서 테스트 해보기.
일단 소스 자체는 오류없기 때문에 기기 연동시 잘 실행될 것으로 예상된다.