Welcome 微信登录

首页 / 操作系统 / 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=["aaa@qq.com","123456789@qq.com"]  
  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("aaa@126.com","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 = "your_qq@qq.com"  
  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("info@kingsoft.com")  
  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()