歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python處理電子郵件

Python處理電子郵件

日期:2017/3/1 10:58:12   编辑:Linux編程

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

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