Python收邮件提取发信人问题?
一下是我的一段代码,功能是从服务器收取信件,把发信人的地址保存进列表。
[Copy to clipboard] [ - ]
CODE:
import poplib,string,email
from email.Header import Header
def pop3conn(host,account,password):
mailInBox=poplib.POP3(host)
mailInBox.user(account)
mailInBox.pass_(password)
addressList=[]
mailnum,mailsize=mailInBox.stat()
for selected in range(0,mailnum):
response,message,content=mailInBox.retr(selected+1)
messageString=email.message_from_string(string.join(message,'\n'))
type=messageString.get_content_charset()
if type=='gb2312':
unicode(messageString.get_payload(),'gb2312')
if type=='shift_jis':
unicode(messageString.get_payload(),'shift_jis')
if type=='None':
unicode(messageString.get_payload(),'utf-8')
messageFrom=email.Header.decode_header(messageString['from'])[0][0]
addressList.append(messageFrom)
return addressList
在发信人的别名是英文时发信人格式正确,如:"admin" <admin@xxxx.net>
在发信人的别名是中文时发信人格式错误,如:"\xcb\xef\xb1\xa6\xc0\xd6"<xxx@21cn.com>,其中\xcb\xef\xb1\xa6\xc0\xd6是中文别名
另外从163发信时,不能提取发信人的地址。
请问,如何解决解码的问题,如何能提取163的发信人的地址?