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的标准。通常使用空格或者制表符。
原文:http://www.cnblogs.com/vicain/p/5099988.html