AWS SES SDK发送带附件的电子邮件

i.v*_*van 5 go amazon-web-services amazon-ses aws-sdk

我正在使用官方AWS Golang SDK与SES集成,但无法找到有关如何在电子邮件中添加一些附件(代码中以[]字节表示的pdf文件)的任何信息.

你可以帮帮我吗?

当前的电子邮件发送代码如下所示:

sesEmailInput := &ses.SendEmailInput{
    Destination: &ses.Destination{
        ToAddresses: []*string{aws.String("To address")},
    },
    Message: &ses.Message{
        Subject: &ses.Content{
            Data: aws.String("Some text"),
        },
        Body: &ses.Body{
            Html: &ses.Content{
                Data: aws.String("Some Text"),
            },
        },
    },
    Source: aws.String("From address"),
    ReplyToAddresses: []*string{
        aws.String("From address"),
    },
}
if _, err := s.sesSession.SendEmail(sesEmailInput); err != nil {
    return err
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*ace 7

要发送附件,请使用SendRawEmail API而不是SendEmail.AWS文档通常将此称为构建"原始消息",而不是明确地调用如何发送附件.

从AWS SDK for Go API参考,链接如下:

params := &ses.SendRawEmailInput{
    RawMessage: &ses.RawMessage{ // Required
        Data: []byte("PAYLOAD"), // Required
    },
    ConfigurationSetName: aws.String("ConfigurationSetName"),
    Destinations: []*string{
        aws.String("Address"), // Required
        // More values...
    },
    FromArn:       aws.String("AmazonResourceName"),
    ReturnPathArn: aws.String("AmazonResourceName"),
    Source:        aws.String("Address"),
    SourceArn:     aws.String("AmazonResourceName"),
    Tags: []*ses.MessageTag{
        { // Required
            Name:  aws.String("MessageTagName"),  // Required
            Value: aws.String("MessageTagValue"), // Required
        },
        // More values...
    },
}
resp, err := svc.SendRawEmail(params)
Run Code Online (Sandbox Code Playgroud)

进一步阅读

  • SDK应该为您在RawMessage中编码`Data`([参考](https://github.com/aws/aws-sdk-go/blob/master/service/ses/api.go#L8032)),并且有关标题的更多信息,请访问:http://docs.aws.amazon.com/ses/latest/DeveloperGuide/email-format.html (2认同)