email.encoders: ç¼–ç �器¶
æº�代ç �: Lib/email/encoders.py
æ¤æ¨¡å�—是旧版 (Compat32) email API 的组æˆ�部分。 在新版 API ä¸å°†ç”± set_content() 方法的 cte å½¢å�‚æ��供该功能。
æ¤æ¨¡å�—在 Python 3 ä¸å·²å¼ƒç”¨ã€‚ 这里æ��供的函数ä¸�应被显å¼�åœ°è°ƒç”¨ï¼Œå› ä¸º MIMEText 类会在类实例化期间使用 _subtype å’Œ _charset 值æ�¥è®¾ç½®å†…容类型和 CTE æ ‡å¤´ã€‚
本节ä¸çš„å…¶ä½™æ–‡æœ¬æ˜¯æ¤æ¨¡å�—的原始文档。
当创建全新的 Message å¯¹è±¡æ—¶ï¼Œä½ ç»�常需è¦�对载è�·ç¼–ç �以便通过兼容的邮件æœ�åŠ¡å™¨è¿›è¡Œä¼ è¾“ã€‚ 对于包å�«äºŒè¿›åˆ¶æ•°æ�®çš„ image/* å’Œ text/* 类型的消æ�¯æ�¥è¯´å°¤å…¶å¦‚æ¤ã€‚
email 包在其 encoders 模å�—䏿��供了一些方便的编ç �器。 这些编ç �器实际上由 MIMEAudio å’Œ MIMEImage ç±»æž„é€ å™¨ä½¿ç”¨ä»¥æ��供默认编ç �æ ¼å¼�。 所有编ç �器函数都å�ªæŽ¥å�—一个å�‚数,å�³è¦�ç¼–ç �的消æ�¯å¯¹è±¡ã€‚ 它们通常会æ��å�–有效截è�·ï¼Œå¯¹å…¶è¿›è¡Œç¼–ç �,并将载è�·é‡�置为新近编ç �的值。 它们还应当相应地设置 Content-Transfer-Encoding æ ‡å¤´ã€‚
请注æ„�,这些函数对于多段消æ�¯æ²¡æœ‰æ„�义。 它们必须应用到å�„个å�•独的段上é�¢ï¼Œè€Œä¸�æ˜¯æ•´ä½“ã€‚å¦‚æžœç›´æŽ¥ä¼ é€’ä¸€ä¸ªå¤šæ®µç±»åž‹çš„æ¶ˆæ�¯ï¼Œä¼šäº§ç”Ÿä¸€ä¸ª TypeError 错误。
下é�¢æ˜¯æ��供的编ç �函数:
- email.encoders.encode_quopri(msg)¶
将有效数æ�®ç¼–ç �为ç»�转æ�¢çš„å�¯æ‰“å�°å½¢å¼�,并将 Content-Transfer-Encoding æ ‡å¤´è®¾ç½®ä¸º
quoted-printable[1]。 当大多数实际的数æ�®æ˜¯æ™®é€šçš„å�¯æ‰“å�°æ•°æ�®ä½†åŒ…å�«å°‘é‡�ä¸�å�¯æ‰“å�°çš„å—符时,这是一个很好的编ç �。
- email.encoders.encode_base64(msg)¶
将有效载è�·ç¼–ç �为 base64 å½¢å¼�,并将 Content-Transfer-Encoding æ ‡å¤´è®¾ä¸º
base64。 å½“ä½ çš„è½½è�·ä¸»è¦�包å�«ä¸�å�¯æ‰“å�°æ•°æ�®æ—¶è¿™æ˜¯ä¸€ç§�很好用的编ç �æ ¼å¼�ï¼Œå› ä¸ºå®ƒæ¯” quoted-printable 更紧凑。 base64 ç¼–ç �æ ¼å¼�的缺点是它会使文本å�˜æˆ�人类ä¸�å�¯è¯»çš„å½¢å¼�。
- email.encoders.encode_7or8bit(msg)¶
æ¤å‡½æ•°å¹¶ä¸�实际改å�˜æ¶ˆæ�¯çš„æœ‰æ•ˆè½½è�·ï¼Œä½†å®ƒä¼šåŸºäºŽè½½è�·æ•°æ�®å°† Content-Transfer-Encoding æ ‡å¤´ç›¸åº”åœ°è®¾ä¸º
7bit或8bit。
- email.encoders.encode_noop(msg)¶
æ¤å‡½æ•°ä»€ä¹ˆéƒ½ä¸�会å�šï¼›å®ƒç”šè‡³ä¸�会设置 Content-Transfer-Encoding æ ‡å¤´ã€‚
备注