gpt4 book ai didi

python - 使用字符集编码 UTF-8 发送电子邮件 - Python + boto3

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:38 25 4
gpt4 key购买 nike

我正在使用 S3 Lambda (python + boto3) + AWS SES 创建自动回复电子邮件。

从我的计算机发送电子邮件一切正常。我可以在电子邮件中看到正确的字符串。 “Olá,meu nome é Pedro”。如果我打印到 python 内部的控制台,仍然在我的计算机中,字符串也可以。

当从 lambda 触发电子邮件时,我遇到字符集编码/解码问题,例如“Olá, meu nome é Pedro”。如果在 lambda s3 控制台中的 python 中进行打印,我会看到错误的字符串:“Olá, meu nome é Pedro”

我需要在电子邮件 header 中设置另一个属性吗?

查看下面的源代码:

# -*- coding: utf-8 -*-
body = u"Olá, meu nome é Pedro"
body = body.encode('UTF-8')
response = client.send_email(
Source='teste@emporiodacerveja.com.br',
Destination={
'ToAddresses': [
"pedrorjbr@gmail.com",
]
},

Message={
'Subject': {
'Data': 'Entre em Contato com Nossa Central de Atendimento',
'Charset': 'UTF-8'
},
'Body': {
'Text': {
'Data': body ,
'Charset': 'UTF-8'
}
}
}
)

最佳答案

您看到的内容(“Olá, meu nome é Pedro”)称为 mojibake 。创建它后,一种编码中的文本将被解释为另一种(不兼容)字符编码中的文本:

>>> print(u"Olá, meu nome é Pedro".encode('utf-8').decode('latin-1'))
Olá, meu nome é Pedro

为了避免此类错误,请传递 Unicode 字符串,而不是字节(删除 .encode('utf-8'))。如果 .send_email() 此处不接受 Unicode,则可能表示存在错误。

关于python - 使用字符集编码 UTF-8 发送电子邮件 - Python + boto3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com