亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過 AWS ses 發送電子郵件時轉義特殊字符

通過 AWS ses 發送電子郵件時轉義特殊字符

Go
臨摹微笑 2023-03-15 14:43:31
您好,我正在使用 AWS SES SDK V2 發送電子郵件。我有一個發件人姓名類似于的情況Michael ?isto。如果我將此名稱直接傳遞給 AWS 電子郵件輸入結構,則會出現以下錯誤:operation error SESv2: SendEmail, https response error StatusCode: 400, BadRequestException: Missing '"'這是我的代碼:package mainimport (    "context"    "github.com/aws/aws-sdk-go-v2/aws"    awsconfig "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() {    name := "Michael ?isto"    body := "test email body"    subject := "test email"    CharSet := "UTF-8"    /* Assemble the email */    input := &sesv2.SendEmailInput{        Destination: &types.Destination{            CcAddresses: []string{},            ToAddresses: []string{receiverEmail},        },        Content: &types.EmailContent{            Simple: &types.Message{                Body: &types.Body{                    Html: &types.Content{                        Charset: aws.String(CharSet),                        Data:    aws.String(body),                    },                },                Subject: &types.Content{                    Charset: aws.String(CharSet),                    Data:    aws.String(subject),                },            },        },        ReplyToAddresses: []string{"\"" + name + "\" <" + senderEmail + ">"},        FromEmailAddress: aws.String("\"" + name + "\" <" + senderEmail + ">"),    }    cfg, err := awsconfig.LoadDefaultConfig(context.TODO(),        awsconfig.WithRegion("us-east-1"),    )    client := sesv2.NewFromConfig(cfg)    emailResp, err = client.SendEmail(context.TODO(), input)}誰能幫我弄清楚如何在 GO 中轉義這些字符?
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

嘗試使用mail.Address.String格式化地址:

package main


import (

    "fmt"

    "net/mail"

)


func main() {

    a := mail.Address{Name: "Michael ?isto", Address: "[email protected]"}

    fmt.Println(a.String())

    // Output:

    // =?utf-8?q?Michael_=C4=8Disto?= <[email protected]>

}

如果您的域包含非 ASCII 字符

請注意,Amazon SES 不支持 SMTPUTF8 擴展。如果地址的域部分(@ 符號之后的部分)包含非 ASCII 字符,則必須使用 Punycode 對其進行編碼(請參閱types.BulkEmailEntry)。mail.Address.String不會為你做這個。但是您可以使用idna.ToASCII自己轉換域。



查看完整回答
反對 回復 2023-03-15
  • 1 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號