第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在不丟失格式的情況下在新電子郵件中發(fā)送現(xiàn)有消息

如何在不丟失格式的情況下在新電子郵件中發(fā)送現(xiàn)有消息

嚕嚕噠 2022-06-22 19:44:22
上下文: 我正在嘗試將收件箱中的現(xiàn)有電子郵件發(fā)送到新線程。問題: 我已使用此功能成功發(fā)送電子郵件正文,但正文丟失了原始電子郵件的格式,僅發(fā)送文本。我認(rèn)為將整個(gè)有效負(fù)載添加到請(qǐng)求正文中更有意義,如gmail API 頁面“嘗試此 API”部分中所述:但是,當(dāng)我將有效負(fù)載添加到請(qǐng)求正文時(shí):def create_message(sender, to, subject, thread_id, message_id, payload, service):  """Create a message for an email.  Args:    sender: Email address of the sender.    to: Email address of the receiver.    subject: The subject of the email message.    message_text: The text of the email message.  Returns:    An object containing a base64url encoded email object.  """  message = MIMEMultipart('alternative')  message['to'] = to  message['from'] = sender  message['subject'] = 'Re: %s' %subject  return {'raw': raw, 'threadId': thread_id, 'payload': payload}發(fā)送的電子郵件沒有內(nèi)容。如何將現(xiàn)有電子郵件添加到新線程而無需解碼和編碼并丟失電子郵件的格式?
查看完整描述

2 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

在搞砸之后,我制作了兩個(gè)函數(shù),可以將plain和html內(nèi)容類型傳遞給可能遇到困難的任何人的新電子郵件:


def get_all_parts(service, user_id, msg_id):

  message = service.users().messages().get(userId=user_id, id=msg_id, format='raw').execute()

  msg_bytes = base64.urlsafe_b64decode(message['raw'].encode('ASCII'))

  b = email.message_from_bytes(msg_bytes)

  body = []


  if b.is_multipart():

    for part in b.walk():

      if part.get_content_maintype() != 'multipart':

        this_part = []

        this_part.append(part.get_payload(decode=True))

        this_part.append(part.get_content_type())

        body.append(this_part)


  return body


def create_message(sender, to, subject, thread_id, message_id, message_text, service):

  message = MIMEMultipart()

  message['to'] = to

  message['from'] = sender

  message['subject'] = 'Re: %s' %subject

  for part in message_text:

    text = part[1].split('/') # 'text/plain' -> ['text', 'plain']

    new_part = MIMEText(str(part[0]), text[1])

    print(part[1])

    message.attach(new_part)


  raw = base64.urlsafe_b64encode(message.as_string().encode('UTF-8')).decode('ascii')   

  body = {'raw': raw, 'threadId': thread_id}


enter code here

這絕對(duì)不是所有電子郵件的詳盡功能,但適用于alternative內(nèi)容類型。


查看完整回答
反對(duì) 回復(fù) 2022-06-22
?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果您從 Gmail UI 打開電子郵件,請(qǐng)單擊三個(gè)點(diǎn)并選擇“顯示原始”,

您可以觀察電子郵件結(jié)構(gòu)

樣本:

信息

在此處輸入圖像描述

顯示原件

在此處輸入圖像描述

  • 您可以看到消息是multipart/alternative并且包含一個(gè)text/plain和一個(gè)text/html部分

  • 如果您使用示例中的整個(gè)突出顯示的代碼作為消息的正文,則格式將被保留。您只需要指定From,ToSubject標(biāo)頭。


查看完整回答
反對(duì) 回復(fù) 2022-06-22
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)