Golang 이메일 본문 HTML 코드 생성하는 Hermes 라이브러리 알아보기
오늘은 Golang으로 이메일에 보낼 수 있는 HTML 코드를 생성해주는 Hermes 라이브러리를 알아보려 합니다.
Hermes 설치
우선 Golang의 환경을 구성하기 위해 https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받을 수 있습니다.
맥에서 brew로 쉽게 설치할 수 있습니다.
brew install go
우분투에서도 apt로 쉽게 설치할 수 있습니다.
sudo apt-get install golang-go
go get으로 Hermes 패키지를 설치합니다.
go get github.com/matcornic/hermes/v2
홈의 go 폴더에 Hermes 소스코드와 패키지 파일이 생성됩니다.
export GO111MODULE=on
만약 설치되지 않는다면 설치하기 전에 go module을 설정해봅니다.
예제
package main
해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언합니다.
import (
"fmt"
"io/ioutil"
"github.com/matcornic/hermes/v2"
)
fmt, ioutil 그리고 hermes를 가져옵니다.
func main() {
hermesGenerator := hermes.Hermes{
Product: hermes.Product{
Name: "minwook_test",
Link: "https://example.com/",
Logo: "https://octodex.github.com/images/original.png",
Copyright: "Copyright © 2019 test. All rights reserved.",
TroubleText: "TroubleText",
},
}
이메일에 헤더와 바닥글에 보일 정보를 기입합니다.
email := hermes.Email{
Body: hermes.Body{
Name: "Consumer",
Intros: []string{
"Welcome to example! Intros text",
},
Actions: []hermes.Action{
{
Instructions: "Instructions, click here:",
Button: hermes.Button{
Text: "Click Text",
Link: "https://example.com/",
},
},
},
Outros: []string{
"Good bye, Outros.",
},
Greeting: "Hello, world!",
Signature: "Signature text",
Table: hermes.Table{
Data: [][]hermes.Entry{
{
{Key: "language", Value: "Golang"},
{Key: "Description", Value: "Open source programming language"},
{Key: "ETC", Value: ""},
},
},
},
Dictionary: []hermes.Entry{
{Key: "fisrt", Value: "first value"},
{Key: "second", Value: "second value"},
},
},
}
이메일의 본문에 이름, 인삿말, 버튼, 사인, 테이블과 같은 것들을 배치할 수 있습니다.
emailText, err := hermesGenerator.GeneratePlainText(email)
if err != nil {
panic(err)
}
fmt.Println(emailText)
위에 작성한 이메일 본문에 대한 내용들을 순수한 문자열로 나타낼 수 있습니다.
emailBody, err := hermesGenerator.GenerateHTML(email)
if err != nil {
panic(err)
}
err = ioutil.WriteFile("index.html", []byte(emailBody), 0644)
if err != nil {
panic(err)
}
}
위에 작성한 이메일 본문을 HTML로 생성하여 최종적으로는 파일로 내보낼 수 있습니다.
Written on August 29, 2019