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

时间:2017-04-30 18:18:41

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

我正在使用official 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
}

1 个答案:

答案 0 :(得分:6)

要发送附件,请使用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)

进一步阅读