Go/Cookbook
【Go/Cookbook】Send Email in golang(feat. Gmail) Go언어에서 이메일 전송하기
1Q74
2023. 5. 24. 15:12
1. Description
Go언어에서 이메일 전송하는 예제입니다. 본 예제에서는 Gmail의 smtp서버를 이용합니다.
2. Prerequisite
다음과 같은 모듈이 필요합니다.
import (
"crypto/tls"
"fmt"
gomail "github.com/go-mail/mail"
)
3. Example
Gmail의 smtp서버를 통해 메일을 전송합니다.
package mail
import (
"crypto/tls"
"fmt"
gomail "github.com/go-mail/mail"
)
type Mail struct {
}
type SmtpServer struct {
host string
port int
}
type Account struct {
email string
password string
}
type Message struct {
Subject string
Msg string
}
var mail = &Mail{}
var smtpServer = &SmtpServer{
host: "smtp.gmail.com",
port: 587,
}
var account = &Account{
email: "Gmail주소",
password: "Gmail 앱 비밀번호",
}
var to = []string{
"받는사람 이메일 주소#1",
"받는사람 이메일 주소#2",
}
func NewMail() *Mail {
return mail
}
func (*Mail) Send(message Message) {
gm := gomail.NewMessage()
gm.SetHeader("From", account.email)
gm.SetHeader("To", to...)
gm.SetHeader("Subject", message.Subject)
gm.SetBody("text/html", message.Msg)
dialer := gomail.NewDialer(smtpServer.host, smtpServer.port, account.email, account.password)
dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := dialer.DialAndSend(gm); err != nil {
fmt.Println(err)
}
}
4. See also
https://support.google.com/mail/answer/185833?hl=ko
앱 비밀번호로 로그인 - Gmail 고객센터
도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요
support.google.com