일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- swift 연속된 부분 수열의 합 풀이
- ios
- MVVM
- swift 2xn 타일링 백준
- swift ac 문제풀이
- swift dfs
- swift 알고리즘
- rxswift
- swift algorithm
- 백준 2xn 타일링 풀이
- ac 투포인터
- 백준 2xn 타일링
- ac swift 풀이
- 연속된 부분 수열의 합 swift
- swift
- swift 2xn 타일링
- ac 구현 풀이
- swift 프로그래머스
- 연속된 부분 수열의 합 투포인터
- 1 2 3 더하기 풀이
- swift 백준 9095
- swift 9095 풀이
- swift ac 풀이
- swift 연속된 부분 수열의 합
- iOS Charts
- swift 2xn 타일링 풀이
- swift ac
- 123 더하기 풀이
- swift gRPC
- swift codility
- Today
- Total
boraBong
[iOS] Swift를 이용해서 iOS 디바이스에서 Email 보내기 📧 본문
안녕하세요 여러분💜
오랜만에 돌아온 보라봉입니다 >< 💜
오늘은 iOS 디바이스에서 Email 보내는 방법에 대해서 알아보려고 해요!!
iOS에서 이메일을 보내려면 MessageUI를 사용해야 합니다!
import MessageUI
☆ 본격적으로 시작하기 전에 !
iOS에서 이메일을 보내기 위해서는 주의해야 할 사항이 있어요
1️⃣ XCode 시뮬레이터에서는 실행되지 않습니다. 반드시 iOS디바이스와 연결해서 테스트해주세요!
2️⃣ iOS 디바이스 내 Mail계정이 연동되어 있어야만 메일 발송이 가능해요!
☆ 따라서 메일 기능을 구현하기 전에 !
✅ iOS 디바이스에서 메일 기능을 사용 가능한지를 검사해주면 좋겠죠??
if 문을 사용해서
MFMailComposeViewController.canSendMail() 이 true라면
■ 즉, 메일을 사용가능하다면
□ 메일주소, 메일제목, 메일내용을 구성해준 후 MFMailComposeViewController를 띄워줍니다.
@IBAction func sendEmailTapped(_ sender: UIButton) {
// 이메일 사용가능한지 체크하는 if문
if MFMailComposeViewController.canSendMail() {
let compseVC = MFMailComposeViewController()
compseVC.mailComposeDelegate = self
compseVC.setToRecipients(["본 메일을 전달받을 이메일주소"])
compseVC.setSubject("메시지제목")
compseVC.setMessageBody("메시지컨텐츠", isHTML: false)
self.present(compseVC, animated: true, completion: nil)
}
else {
self.showSendMailErrorAlert()
}
}
MFMailComposeViewController.canSendMail() 이 false라면
■ 즉, 메일 사용이 불가능하다면 (디바이스 내 Mail앱을 이용할 수 없는 경우)
□ 만들어준 showSendMailErrorAlert() 함수를 호출해줍니다.
func showSendMailErrorAlert() {
let sendMailErrorAlert = UIAlertController(title: "메일을 전송 실패", message: "아이폰 이메일 설정을 확인하고 다시 시도해주세요.", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "확인", style: .default) {
(action) in
print("확인")
}
sendMailErrorAlert.addAction(confirmAction)
self.present(sendMailErrorAlert, animated: true, completion: nil)
}
👆 위 Alert는 디바이스 내 메일이용이 가능해야 메일 보내기 기능을 사용할 수 있다는 인지를 주기 위한 Alert입니다!!
그리고 메일 보내기 버튼을 눌렀을 때, 호출해준 MFMailComposeViewController를 dismiss해줘야겠죠??
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true, completion: nil)
}
위 코드를 통해 메일 전송이 완료된 후 컨트롤러를 dismiss해줄 수 있습니다!! :)
✅전체 코드 첨부 ✅
//
// ViewController.swift
// emailTest
//
// Created by 황지은 on 2021/02/07.
//
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
func showSendMailErrorAlert() {
let sendMailErrorAlert = UIAlertController(title: "메일을 전송 실패", message: "아이폰 이메일 설정을 확인하고 다시 시도해주세요.", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "확인", style: .default) {
(action) in
print("확인")
}
sendMailErrorAlert.addAction(confirmAction)
self.present(sendMailErrorAlert, animated: true, completion: nil)
}
@IBAction func sendEmailTapped(_ sender: UIButton) {
if MFMailComposeViewController.canSendMail() {
let compseVC = MFMailComposeViewController()
compseVC.mailComposeDelegate = self
compseVC.setToRecipients(["melon2228@naver.com"])
compseVC.setSubject("Message Subject")
compseVC.setMessageBody("Message Content", isHTML: false)
self.present(compseVC, animated: true, completion: nil)
}
else {
self.showSendMailErrorAlert()
}
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true, completion: nil)
}
}
https://github.com/hwangJi-dev/iOS-Practice/tree/master/emailTest
이렇게 오늘은 swift에서 메일 보내기를 알아봤습니다!!
유익한 정보가 되었으면 좋겠네요:)
'iOS > Feat' 카테고리의 다른 글
[iOS] UIScreen Swift에서 디바이스 사이즈 인식하기(UIScreen Size)📱 (0) | 2021.04.10 |
---|---|
[iOS] Swift를 사용하여 카카오톡 앱을 실행하는 방법 📲 (URLScheme) (0) | 2021.04.10 |
[iOS] Charts 라이브러리로 막대그래프 라운드 커스텀하기📊 "How to make Round BarChart in Charts?" (0) | 2021.02.10 |
[iOS] Swift를 사용하여 iOS 디바이스에서 전화를 거는 방법 📞 (URLScheme) (3) | 2021.02.09 |
[iOS] Charts 라이브러리로 막대그래프 만들기📊 (7) | 2020.10.18 |