歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python處理電子郵件

如果你有大量郵箱要批量處理他們的郵件 如果有手工處理一定會很慢

下面用python提供的郵件庫處理,

通過這個庫可以方便的發送和接收電子郵件 代碼很短

直接上代碼

發送代碼

  1. #!/usr/bin/env python   
  2. # -*- coding: gbk -*-   
  3. #導入smtplib和MIMEText   
  4. import smtplib  
  5. from email.mime.text import MIMEText  
  6. #############   
  7. #要發給誰,這裡發給2個人   
  8. mailto_list=["[email protected]","[email protected]"]  
  9. #####################   
  10. #設置服務器,用戶名、口令以及郵箱的後綴   
  11. mail_host="smtp.qq.com"  
  12. mail_user="your qq"  
  13. mail_pass="password"  
  14. mail_postfix="qq.com"  
  15. ######################   
  16. def send_mail(to_list,sub,content):  
  17.     ''''' 
  18.     to_list:發給誰 
  19.     sub:主題 
  20.     content:內容 
  21.     send_mail("[email protected]","sub","content") 
  22.     '''  
  23.     me=mail_user+"<"+mail_user+"@"+mail_postfix+">"  
  24.     msg = MIMEText(content)  
  25.     msg['Subject'] = sub #設置主題   
  26.     msg['From'] = me     #發件人   
  27.     msg['To'] = ";".join(to_list) #收件人   
  28.     try:  
  29.         s = smtplib.SMTP()  
  30.         s.connect(mail_host)  
  31.         s.login(mail_user,mail_pass)  
  32.         s.sendmail(me, to_list, msg.as_string())  
  33.         s.close()  
  34.         return True  
  35.     except Exception, e:  
  36.         print str(e)  
  37.         return False  
  38. if __name__ == '__main__':  
  39.     if send_mail(mailto_list,"subject","content"):  
  40.         print "發送成功"  
  41.     else:  
  42.         print "發送失敗"  

接收郵件 根據發件人並提取出指定郵件

  1. import poplib  
  2. import string  
  3. from email import parser  
  4.   
  5. host = 'pop.qq.com'  
  6. username = '[email protected]'  
  7. password = 'your_password'  
  8.   
  9. pop_conn = poplib.POP3_SSL(host)  
  10. pop_conn.user(username)  
  11. pop_conn.pass_(password)  
  12.   
  13. #從服務器獲取郵件列表:   
  14. messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]  
  15.   
  16. # Concat message pieces:   
  17. messages = ["/n".join(mssg[1]) for mssg in messages]  
  18.   
  19. #解析郵件到email object:   
  20. messages = [parser.Parser().parsestr(mssg) for mssg in messages]  
  21. for message in messages:  
  22.     addrfrom = str(message.get('from'))  
  23.     try:  
  24.         addrfrom.index('[email protected]')  
  25.         start_addr = addrfrom.index('<')  
  26.         end_addr = addrfrom.index('>')  
  27.         print addrfrom[start_addr + 1 : end_addr] #如果郵件是來自金山則打印他的標題   
  28.     except ValueError:  
  29.         continue  
  30. pop_conn.quit()  
Copyright © Linux教程網 All Rights Reserved