애플리케이션에서 메일을 보내는 것은 간단하다. 주의할 점은
- iOS 디바이스에서만 동작한다.(시뮬레이터에서는 동작하지 않는다.)
- 발신자는 iOS Mail에 계정이 등록되어 있어야 한다.
이 정도로 볼 수 있겠다. 2번의 경우 주의할 점에 굳이 적을 필요가 없을 정도로 당연한 것이지만 메일이 제대로 전송되지 않을 경우 확인할 요소로 생각하길 바란다. 필자가 이 경우로 삽질할 뻔 했다.
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func sendEmail(_ sender: UIButton) {
let mailComposeVC = configureMailComposer()
if MFMailComposeViewController.canSendMail() {
self.present(mailComposeVC, animated: true, completion: nil)
} else {
print("이메일을 보낼 수 없습니다.")
}
}
func configureMailComposer() -> MFMailComposeViewController {
let mailComposeVC = MFMailComposeViewController()
mailComposeVC.mailComposeDelegate = self
mailComposeVC.setToRecipients(["maybutter756@gmail.com"])
mailComposeVC.setSubject("문의 메일")
mailComposeVC.setMessageBody("문의합니다~", isHTML: false)
return mailComposeVC
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
// 메일 보내기에 성공 또는 실패한 후 처리
controller.dismiss(animated: true, completion: nil)
}
}
실행해보면 다음과 같은 결과를 확인할 수 있다. 전체 소스코드는 여기에서 확인 가능하다!
참고: https://medium.com/@javedmultani16/send-email-from-ios-app-by-using-mfmailcomposeviewcontroller-in-swift-94c2d4f439af
https://faith-developer.tistory.com/165