[Golang] SMTP를 이용한 메일 보내기

Go는 기본으로 제공하는 net//smtp 패키지를 통해 메일을 보낼 수 있습니다. 아래의 코드는 MicroSoft의 Live를 통해 메일을 보내는 코드입니다.

package main

import (
    "fmt"
    "net/smtp"
)

func main() {
    auth := smtp.PlainAuth("", "hjkim@geoservice.co.kr", "@pw", "smtp.live.com")

    from := "hjkim@geoservice.co.kr"
    to := []string{"korea.gisdeveloper@gmail.com", "geoservice@naver.com"}

    headerSubject := "Subject: 아기공룡 둘리 ㅡ 강민규\r\n"
    headerBlank := "\r\n"

    body := `
        요리 보고 저리 봐도 음음 알 수 없는 둘리~ 둘리~ 
        빙하타고 내려와 음음 친구를 만났지만 

        일억년전 옛날이 너무나 그리워 
        보고픈 엄마찾아 모두함께 나가자 하아 하아 

        기쁠때도 슬플때도 음음 우리 곁엔 둘리~ 둘리~ 
        오랜세월 흘러온~ 둘리와 친구되어 

        고~향은 다르지만 모두가 한마음 
        아득한 엄마나라 우리 함께 떠나자~ 하아 하아 

        <후렴> 
        외로운 둘리는 귀여운 아기공룡 
        호이 호이 둘리는 초능력 내친구(재주꾼) 
        호이 호이 호이 호이  
    `

    msg := []byte(headerSubject + headerBlank + body)

    err := smtp.SendMail("smtp.live.com:587", auth, from, to, msg)
    if err != nil {
        panic(err)
    }

    fmt.Println("done")
}

9번 코드에서 smtp 서버의 주소로 smtp.live.com를 지정했으며, 이 서버의 계정(hjkim@geoservice.co.kr)과 암호(@pw)를 지정합니다. 그리고 12번 코드에서 메일을 받을 주소를 배열을 통해 지정할 수 있습니다. 그리고 14번에 메일의 제목을, 17번에서 메일의 내용을 입력하고 이 제목과 내용을 36번 코드에서처럼 하나의 바이트 배열루 묶습니다. 이렇게 묶은 바이트 메일을 38번 코드를 통해 전송하면 됩니다.

의심, 근심 그리고 욕심

“혹자는 의심은 마음의 고름이고, 근심은 마음의 주름이며 욕심은 마음의 기름이라고 했다. 고름과 주름 그리고 기름은 그 사람의 몸과 마음을 상하게 한다. 의심은 호기심으로, 근심은 관심으로, 욕심은 동심으로 달리 마음을 바꿔 몸과 마음을 건강하게 해야 할 것이다.”