当收件人名称为多字节时,用于发送带有附件的邮件的G mail API失败

2024-10-04 05:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用下面的APi发送带有附件的邮件

https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=multipart

当收件者的名字是英文时,这是正常的,但如果收件者的名字包含多字节(例如日语),我得到400(错误的请求)作为响应

代码段

def create_raw():

    message['to'] = ','.join([recipients_dict['name']+ 
    <"+recipients_dict['email_address']+">" for recipients_dict in 
    recipients['to']])
    message['from'] = email_address
    message['subject'] = subject
    msg = MIMEText(body)
    message.attach(msg)

recipients_dict['name']是“English”时,API按预期工作,但对于多字节字符

getting HTTP 400(Bad request) Error

是的


Tags: tonameapimessage附件字节addressemail
1条回答
网友
1楼 · 发布于 2024-10-04 05:25:12

你对gmailapi有很好的理解。唯一必要的步骤是将字符串编码成UTF-8,然后再通过base64以字节形式发送它(由于MIME的定义)。您可以使用类似以下的代码来完成此任务:

import base64
…
recipients_dict['name'] = base64.b64encode(u'ジョージ'.encode("utf-8"))

如果您还有任何问题,请随时寻求进一步的帮助

相关问题 更多 >