AWS SES不使用SendRawEmail操作发送电子邮件

时间:2017-03-11 14:02:37

标签: amazon-web-services go amazon-ses

使用SendRawEmail操作向AWS golang sdk发送电子邮件时遇到麻烦。即使我没有收到任何错误并从AWS收到MessageId,我也没有收到该电子邮件。

使用SendEmail发送电子邮件的工作正常,我收到了电子邮件。

我的代码:

  session, err := session.NewSession()
  if err != nil {
    return err
  }

  svc := ses.New(session, &aws.Config{Region: aws.String("eu-west-1")})

  messageContent := `From: "Alice" <xxx@xxx>
To: "Bob" <xxx@xxx>
Return-Path: <xxx@xxx>
Subject: Hello
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0

This is a test email`

  base64messageContent := base64.StdEncoding.EncodeToString([]byte(messageContent))

  source := aws.String("xxx@xxx")
  destinations := []*string{aws.String("xxx@xxx")}
  message := ses.RawMessage{Data: []byte(base64messageContent)}

  input := ses.SendRawEmailInput{Source: source, Destinations: destinations, RawMessage: &message}

  output, err := svc.SendRawEmail(&input)

  if err != nil {
    return err
  }

  log.Println("Response from SES", output)

  return nil
}

我正在使用我的Gmail作为目标电子邮件,如果这有任何区别的话。

1 个答案:

答案 0 :(得分:2)

Data中的

RawData不应为base64编码。正如documentation states

  

// SDK自动对数据进行base64编码/解码。