python pop3 收邮件
def retrive_emails(pop3_server, user_name, passwd, server_port):
#POP3
pop_client = poplib.POP3(pop3_server, port=server_port)
pop_client.user(user_name)
pop_client.pass_(passwd)
#print messages num
num_messages, mbox_size = pop_client.stat()
print 'there are %s new emails\n' % num_messages
if num_messages == 0:
pop_client.quit()
return
print('num of messages %s' %str(num_messages))
#mk folder
folder_name = '%s-%s' %(user_name, pop3_server)
if not os.path.exists(folder_name):
os.mkdir(folder_name)
for idx in range(num_messages):
one_mail = pop_client.retr(idx+1)
buf = cStringIO.StringIO()
for j in one_mail[1]:
print >>buf,j
buf.seek(0)
#parse mail content
msg = email.message_from_file(buf)
for part in msg.walk():
contenttype = part.get_content_type()
print('\npart:\n%s\n' % part)
&
相关文档:
转帖:
http://blog.csdn.net/wyingquan/archive/2008/12/20/3561094.aspx
用python自带的binascii模块计算字符串的校验码,出来的是负值,与用c写的程序得出的校验码不一样,所以就研究了一下。发现别人用的python3.0版本binascii模块计算出的crc32校验码是我想要的,没办法只好自己用python实现一下crc32的算法了。发 ......
import win32com.client
store = win32com.client.Dispatch('CAPICOM.Store')
# 打开证书存储区
# 2 -> CAPICOM_CURRENT_USER_STORE
# 0 -> CAPICOM_STORE_OPEN_READ_ONLY
store.Open(2, "My", 0)
# 查找有效证书
# 12 -> CAPICOM_CERTIFICATE_FIND_KEY_USAGE
# 0x00000080 -> CAPICOM_DIGITAL_SIGNATU ......
当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。
一个解决的方案是 ......