如何通过Golang AWS SES-v2配置邮件预览文本替代正文展示
实现方案
要实现邮件预览区域显示指定文本而非正文,核心是利用AWS SES-v2 SDK中EmailContent.Simple.PreviewText字段定义专属预览内容,具体实现如下:
关键代码示例
在构建SendEmailInput参数时,明确设置PreviewText字段,示例代码如下:
package main import ( "context" "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/sesv2" "github.com/aws/aws-sdk-go-v2/service/sesv2/types" ) func main() { cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-1")) if err != nil { panic(fmt.Sprintf("加载SDK配置失败: %v", err)) } client := sesv2.NewFromConfig(cfg) input := &sesv2.SendEmailInput{ Destination: &types.Destination{ ToAddresses: []string{"收件人邮箱@example.com"}, }, Content: &types.EmailContent{ Simple: &types.Message{ Subject: &types.Content{ Data: aws.String("你的邮件主题"), // 保留原主题设置 }, Body: &types.Body{ Text: &types.Content{ Data: aws.String("完整邮件正文内容(无需显示在预览)"), }, Html: &types.Content{ Data: aws.String("<h1>HTML格式邮件正文</h1><p>这是完整的HTML邮件内容</p>"), }, }, PreviewText: &types.Content{ // 重点配置:指定预览文本 Data: aws.String("这是你要展示在预览区域的自定义文本"), }, }, }, FromEmailAddress: aws.String("发件人邮箱@example.com"), } _, err = client.SendEmail(context.TODO(), input) if err != nil { panic(fmt.Sprintf("发送邮件失败: %v", err)) } fmt.Println("邮件发送成功") }
原理说明
- SES-v2的
Simple.Message.PreviewText是专门为邮件预览场景设计的参数,设置后主流邮箱客户端会优先使用该字段内容作为列表预览文本,不再自动截取正文内容。 - 该配置对纯文本、HTML格式的邮件均生效,且完全不影响邮件正文的正常展示。
内容的提问来源于stack exchange,提问作者Aanchal Sharma
相关产品推荐
相关产品推荐

