利用python创建MIME对象(一)

1.为MIME添加国家化标准的头部

email.header是专门处理email messsage头部字段的模块,核心类是email.header.Header,如下所示:

  class email.header.Header([s[, charset[, maxlinelen[, header_name[, continuation_ws[, errors]]]]]])

eg.

#coding=utf-8


from email.message import Message

import email.header
import email.utils

def add_header_(subject,from_name,from_addr,to):
    from_addr   = "<"+from_addr+">"
    to          = "<"+to+">" 
    Subject     = email.header.Header(subject,"utf-8",80,"Subject","\t")
    From        = email.header.Header(from_name,"utf-8",80,"From","\t")
    From.append(from_addr,"ascii")
    To          = email.header.Header(to,"ascii",80,"To","\t")
    Date        = email.utils.formatdate(localtime=True)
    msg = Message()
    msg["Subject"]  = Subject
    msg["From"]     = From
    msg["To"]       = To
    msg["Date"]     = Date
    print msg.as_string()
    
add_header_("主题","李志","lizhi1985@qq.com","receiver@qq.com")

 

  ->可选参数s是header的初始值。如果设置为None,那么表示并没有设置初始值。s可以是单字节字符串或者Unicode字符串

  ->charset指的是字符串采用的字符集,在这里模块会自己决定采用base64还是QP进行编码。甚至一个字段会出现多种编码

  ->maxlinelen是每行多少个字符,默认值是76,用来分割传递给header_name的字段的长度。这里包含了CRLF!

  ->header_name表示头部字段名。注意,这里的header_name与实际的header_name最好对应起来,否则分割的时候会出错。

  ->continuation_ws用于定义折叠头部的字符,此处应该符合RFC2822的标准。通常使用空格或者制表符

posted @ 2016-01-04 22:03  Vicain  阅读(2406)  评论(0编辑  收藏  举报