본문 바로가기

코딩의 유익함/스위프트(Swift)

Swift(스위프트) - SMTP를 이용하여 메일 보내기

Swift SMTP

Swift에서는 SMTP를 이용하여 어떻게 메일을 보낼 수 있는지 살펴보겠습니다.

 

사실, 직접 모든 것을 구현하려고 하면 알아야할 지식도 엄청 많고 복잡하지만, 누군가가 친절하게 만들어놓은 것들이 있습니다. 우리는 그런 것들을 최대한 이용해서 쉽게 구현해보도록 하겠습니다.

 

1. 누군가가 만들어놓은 SMTP 라이브러리 사용


1.1 자신의 프로젝트 선택 ->  Frameworks.. 선택 -> + 클릭

SMTP(1-1)

 

1.2  왼쪽 하단 Add Package Dependency... 클릭 -> https://github.com/IBM-Swift/Swift-SMTP 삽입 ->  Next 클릭

SMTP(1-2)

 

1.3  SwiftSMTP 라이브러리 생성 확인

SMTP (1-3)

 

1.4  SMTP 설정에 필요한 구조체가 SMTP.swift에 구현

SMTP (1-4)

 

2. 메일을 보내기 위한 소스코드 작성


2.1 SMTP_SET.swift(view 아님) 생성 -> SMTP 기본 정보 설정 -> 보낸이, 받는이 등 메일 설정

SMTP(2-1)

 

2.2 SwiftSMTP 라이브러리에 기본적으로  TLS, 포트 587로 설정되어 있음

SMTP(2-2)

 

2.3 ContentView(SwiftUI) -> 버튼 클릭 시 -> 2.1에서 생성한 smtp의 send 함수 호출 -> 버튼 클릭

SMTP(2-3)

 

3. 예제  소스코드


3.1 SMTP_SET.swift

import Foundation
import SwiftSMTP

let smtp = SMTP(

    hostname: "smtp.gmail.com",     // SMTP server address

    email: "자신의 메일 주소",        // username to login

    password: "자신의 메일 주소 비밀번호"           // password to login

)

let mail_from = Mail.User(name: "자신의 이름", email: "자신의 메일 주소)

let mail_to = Mail.User(name: "상대방 이름", email: "상대방 메일 주소")

 

let mail = Mail(

    from: mail_from,

    to: [mail_to],

    subject: "hello",

    text: "I like you"

)

 

3.2 ContentView.swift

import SwiftUI

struct ContentView: View {

    var body: some View {

        

        Button(action: {

            smtp.send(mail)

        }) {

            Text("send mail")

        }

    }

}

 

struct ContentView_Previews: PreviewProvider {

    static var previews: some View {

        ContentView()

    }

}

 

이상 궁금한 점이 있으면 댓글 남겨주시면 답글 드리겠습니다.

 

감사합니다.