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()  

相关内容