SendGrid로 이메일 보내기

App Engine의 이메일입니다. SendGrid는 전송 기능을 개선하고 앱에서 발송하는 이메일 상태를 명료하게 보여줍니다. SendGrid 인터페이스 또는 API를 통해 열기, 클릭, 수신 거부, 스팸 신고 등의 통계를 확인할 수 있습니다.

가격

App Engine 고객은 Google Cloud Platform Console을 통해 SendGrid 이메일 API 요금제에 가입하여 매월 이메일 12,000개를 무료로 전송할 수 있습니다. 해당 유료 계정에 가입한 고객에 대해 Google이 보상을 받는다는 점을 양지해 주세요.

SendGrid 라이브러리

SendGrid를 사용하면 SMTP 릴레이 또는 Web API를 통해 이메일을 보낼 수 있습니다.

SendGrid를 App Engine 프로젝트와 통합하려면 SendGrid 클라이언트 라이브러리를 사용하세요.

시작하기 전에

SendGrid를 사용해 이메일을 전송하려면 다음 단계를 따르세요.

  1. SendGrid 이메일 API 요금제에 가입합니다.
  2. Sendgrid API 키를 메모해 둡니다.
  3. Google Cloud Platform Console에서 GCP 프로젝트를 선택하거나 새로 만든 후, App Engine 애플리케이션이 존재하고 결제가 사용 설정되었는지 확인합니다.

    App Engine으로 이동

    프로젝트에 App Engine 애플리케이션이 이미 있고 결제가 사용 설정되어 있으면 대시보드가 열립니다. 그렇지 않으면 표시되는 메시지를 따라 지역을 선택하고 결제를 사용 설정합니다.
  4. SendGrid API 키를 app.yaml의 환경 변수 섹션에 추가합니다.

    예를 들어 아래 샘플 코드의 경우 다음을 추가합니다.

    env_variables:
      SENDGRID_API_KEY: your-sendgrid-api-key

  5. 명령줄로 SendGrid 패키지를 로컬 머신에 다운로드합니다.
    go get gopkg.in/sendgrid/sendgrid-go.v2
  6. 애플리케이션에서 SendGrid 패키지를 가져옵니다.
    import "gopkg.in/sendgrid/sendgrid-go.v2"
    

메일 보내기

SendGrid 인스턴스를 만들고 이를 사용하여 메일을 전송할 수 있습니다.

다음 샘플 코드에서는 이메일을 보내고 몇 가지 오류 처리를 지정하는 방법을 보여줍니다.

func sendMailHandler(w http.ResponseWriter, r *http.Request) {
	m := sendgrid.NewMail()
	m.AddTo("example@email.com")
	m.SetSubject("Email From SendGrid")
	m.SetHTML("Through AppEngine")
	m.SetFrom("sendgrid@appengine.com")

	if err := sendgridClient.Send(m); err != nil {
		http.Error(w, fmt.Sprintf("could not send mail: %v", err), http.StatusInternalServerError)
		return
	}

	fmt.Fprintf(w, "email sent successfully.")
}

계정 세부정보를 추가한 후 이메일 주소와 기타 메시지 내용을 수정합니다.

자세한 이메일 설정과 예는 SendGrid-Go 라이브러리를 참조하세요.

테스트 및 배포

앱을 로컬로 실행하기 전에 로컬 머신에서 명령줄을 사용하여 환경 변수를 설정해야 합니다. 예를 들어 위 샘플 코드에서는 다음을 수행합니다.

export SENDGRID_API_KEY= your-sendgrid-api-key
export SENDGRID_SENDER= your-sendgrid-sender-email-address

이제 애플리케이션을 로컬로 실행하여 콜백 및 SMS 전송을 테스트할 수 있습니다. 예를 들면 다음과 같습니다.

go run sendgrid.go

애플리케이션을 테스트한 후 프로젝트를 App Engine에 배포합니다.

gcloud app deploy

실시간 정보 가져오기

SendGrid에서는 이메일을 전송할 수 있을 뿐만 아니라 이메일을 수신하거나 웹훅를 사용하여 이미 전송한 이메일을 파악할 수 있습니다.

Event API

애플리케이션에서 이메일 전송을 시작한 후에는 SendGrid에서 수집되는 통계를 확인하여 이메일 프로그램을 평가할 수 있습니다. Event API를 사용하면 이 데이터를 볼 수 있습니다. 예를 들어 수신자가 이메일을 열거나 클릭할 때마다 SendGrid가 사용자의 Google App Engine 앱에 설명 JSON을 전송하여 이벤트에 대응하거나, 데이터를 나중에 사용하도록 저장할 수 있습니다.

Event API 문서에서는 웹훅 설정 방법, 9가지 이벤트 유형, 이벤트 콜백에 포함된 필드를 설명합니다.

Inbound Parse API

SendGrid는 이메일을 수신할 수 있습니다. Inbound Parse API는 지원 티켓 자동화 등의 대화형 애플리케이션에 사용할 수 있습니다.

Parse API는 새로운 내용이 있을 때 애플리케이션에 데이터를 전송하는 웹훅입니다. 이 경우 사용자가 수신 이메일과 연결한 도메인에 새 이메일이 도착할 때마다 웹훅이 호출됩니다.

이메일은 보내는 사람, 받는 사람, 제목, 본문이 서로 다른 필드로 지정되어 JSON으로 구성된 애플리케이션에 전송됩니다. 첨부 파일은 20MB까지 허용됩니다.

Parse API 문서에는 DNS 설정 및 사용법 안내뿐만 아니라 모든 이메일과 함께 전송되는 추가 필드를 포함한 자세한 세부정보가 있습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Go용 Google App Engine Flexible Environment