python 接收邮件示例:pop3与imap

简单来说主要区别就是imap可以不用把所有的邮件全部下载,就通过客户端直接对服务器上的邮件进行操作。IMAP它只下载邮件的主题,并不是把所有的邮件内容都下载下来. 

=============================pop3================================= 
Python代码   收藏代码
  1. import poplib    
  2.     
  3. emailServer = poplib.POP3('192.168.88.7')    
  4. emailServer.user('qa01@corp.globalmarket.com')    
  5. emailServer.pass_('123456')    
  6.   
  7. # 获取一些统计信息    
  8. emailMsgNum, emailSize = emailServer.stat()    
  9. print 'email number is %d and size is %d'%(emailMsgNum, emailSize)    
  10.     
  11. # 遍历邮件,并打印出每封邮件的标题    
  12. for i in range(emailMsgNum):    
  13.     for piece in emailServer.retr(i+1)[1]:    
  14.         if piece.startswith('Subject'):    
  15.             print '\t' + piece    
  16.             break    
  17.             
  18. emailServer.quit()   



=============================imap================================= 
Python代码   收藏代码
  1. import imaplib, string, email  
  2. M = imaplib.IMAP4_SSL("imap.gmail.com")  
  3. print M  
  4. try:  
  5.     try:  
  6.         M.login('chemboking@gmail.com','kawayime')  
  7.     except Exception,e:  
  8.         print 'login error: %s' % e  
  9.         M.close()  
  10.     M.select()  
  11.     result, message = M.select()  
  12.     typ, data = M.search(None'ALL')  
  13.     for num in string.split(data[0]):  
  14.         try:  
  15.             typ, data = M.fetch(num, '(RFC822)')  
  16.             msg = email.message_from_string(data[0][1])  
  17.             print msg["From"]  
  18.             print msg["Subject"]  
  19.             print msg["Date"]  
  20.             print "_______________________________"  
  21.         except Exception,e:  
  22.             print 'got msg error: %s' % e              
  23.     M.logout()  
  24.     M.close()  
  25. except Exception, e:  
  26.     print 'imap error: %s' % e  
  27.     M.close()  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Python接收邮件,需要使用电子邮件协议(如 IMAPPOP3)与邮件服务器进行通信。推荐使用 Python 的第三方库 "imaplib" 或 "poplib" 来实现这个功能。 举个例子,下面是如何使用 imaplib 接收邮件的代码: ``` import imaplib mail = imaplib.IMAP4_SSL('imap.example.com') mail.login('username', 'password') mail.select('inbox') status, messages = mail.search(None, 'ALL') for num in messages[0].split(): status, msg = mail.fetch(num, '(RFC822)') # 处理邮件内容 ``` 请注意,以上代码仅作为示例,实际上需要根据您使用的邮件服务商以及账户信息进行修改。 ### 回答2: Python可以使用`poplib`库来接收邮件。下面是使用`poplib`接收邮件的一般流程: 1. 导入`poplib`库:`import poplib`。 2. 连接到邮件服务器:`pop3_server = poplib.POP3('pop.mailserver.com')`。替换`pop.mailserver.com`为你所使用的邮件服务器的地址。 3. 发送登录凭据:`pop3_server.user('your_username')`和`pop3_server.pass_('your_password')`。替换`your_username`和`your_password`为你的邮箱用户名和密码。 4. 获取邮件列表:`response, msg_list, octets = pop3_server.list()`。邮件列表存储在`msg_list`中。 5. 获取最新的邮件:`response, msg_contents, octets = pop3_server.retr(msg_list[-1])`。此处获取最新的一封邮件。如果要获取其他邮件,可以使用不同的索引。 6. 解码邮件内容:邮件内容以字节流的形式存储在`msg_contents`中,需要使用`decode('utf-8')`进行解码。 7. 处理邮件内容:根据邮件的特定格式对邮件内容进行解析和处理,可以使用`email`库来处理邮件头、正文、附件等信息。 8. 退出连接:`pop3_server.quit()`。 下面是一个简单的示例代码,用于接收并打印邮件的主题和发件人: ```python import poplib from email.parser import Parser # 连接到邮件服务器 pop3_server = poplib.POP3('pop.mailserver.com') # 发送登录凭据 pop3_server.user('your_username') pop3_server.pass_('your_password') # 获取邮件列表 response, msg_list, octets = pop3_server.list() # 获取最新的邮件 response, msg_contents, octets = pop3_server.retr(msg_list[-1]) # 解码邮件内容 msg_contents = b"\r\n".join(msg_contents).decode('utf-8') # 解析邮件内容 msg = Parser().parsestr(msg_contents) # 获取主题和发件人 subject = msg.get('Subject') from_address = msg.get('From') # 打印主题和发件人 print('主题:', subject) print('发件人:', from_address) # 退出连接 pop3_server.quit() ``` 请替换示例代码中的`pop.mailserver.com`、`your_username`和`your_password`为你的邮件服务器地址、用户名和密码。同时,根据你对邮件内容的具体处理需求,可以参考相关文档对邮件的其他信息进行解析和处理。 ### 回答3: Python通过使用第三方库来接收和处理电子邮件。其中一个常用的库是`imaplib`。下面是一个简单的示例,展示如何使用`imaplib`库接收邮件: 首先,必须安装`imaplib`库。可以使用`pip`命令在命令行中执行以下命令进行安装: ``` pip install imaplib ``` 下面的代码演示了如何使用`imaplib`库接收邮件: ```python import imaplib # 邮件服务器的地址和端口 # 根据自己的情况,替换下面的地址和端口 IMAP_SERVER = 'imap.example.com' IMAP_PORT = 993 # 登录邮箱 mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT) mail.login('your-email@example.com', 'your-password') # 选择邮箱文件夹 mail.select('INBOX') # 搜索邮件 status, data = mail.search(None, 'ALL') email_ids = data[0].split() # 遍历邮件 for email_id in email_ids: # 获取邮件内容 status, data = mail.fetch(email_id, '(RFC822)') raw_email = data[0][1] # 对邮件内容进行处理,例如解析、打印等 print(raw_email.decode()) # 关闭邮件连接 mail.logout() ``` 以上的代码首先连接到邮件服务器,使用提供的邮箱地址和密码进行登录。然后,选择邮箱文件夹,例如"Inbox"。接下来,使用`search`函数搜索所有的邮件,获取邮件的ID。然后,可以使用这些ID来获取每封邮件的内容,例如使用`fetch`函数来获取邮件的完整内容。 请注意,以上代码只是一个简单的示例,并没有处理邮件的解析和其他操作。实际应用中,可能需要进一步处理邮件内容,例如解析邮件头、提取附件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值