Python网络编程基础笔记-在email中使用两种编码方式

1.根据内容类型,以不同的方式追加附件
               
               
                # -*- coding:cp936 -*-
#!/usr/bin/env python
"""
使用两种编码方式,分别针对不同的用户
1.创建MIMEText对象
2.创建MIMEBase对象
3.将这两个对象分别追加到Multipart对象中,用户可以根据自己的需要使用相应的视图进行查看。
"""
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email import Utils
from email import Encoders
import mimetypes
import sys
# 根据给出的类型创建不同的对象
def alternative(data,contenttype):
    maintype,subtype = contenttype.split("/")
    if maintype == "text":
        retval = MIMEText(data,_subtype = subtype)
    else:
        retval = MIMEBase(maintype,subtype)
        retval.set_paylaod(data)
        Encoders.encode_base64(retval)
    return retval
# 纯文本信息
messageplain = """
Hello,
    This is plain text!

    ---jcodeer
"""
# 创建HTML信息
messagehtml = """
Hello,
    This is html text
   
    ---jcodeer
"""
msg = MIMEMultipart()
msg.attach(alternative(messageplain,"text/plain"))
msg.attach(alternative(messagehtml,"text/html"))
print msg.as_string()
2.输出结果
Content-Type: multipart/mixed; boundary="===============2122003998=="
MIME-Version: 1.0
--===============2122003998==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Hello,
    This is plain text!

    ---jcodeer
--===============2122003998==
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Hello,
    This is html text
   
    ---jcodeer
--===============2122003998==--