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번 코드를 통해 전송하면 됩니다.