使用smtplib - Python接收来自Gmail的回复

时间:2013-08-09 22:17:16

标签: python gmail smtplib reply

好的,我正在研究一种类型的系统,以便我可以使用sms消息在我的计算机上开始操作。我可以让它发送最初的消息:

import smtplib  

fromAdd = 'GmailFrom'  
toAdd  = 'SMSTo'  
msg = 'Options \nH - Help \nT - Terminal'  

username = 'GMail'  
password = 'Pass'  

server = smtplib.SMTP('smtp.gmail.com:587')  
server.starttls()  
server.login(username , password)  
server.sendmail(fromAdd , toAdd , msg)  
server.quit()

我只需要知道如何等待回复或从Gmail本身提取回复,然后将其存储在变量中以供日后使用。

3 个答案:

答案 0 :(得分:12)

您应该使用POP3或IMAP(后者更可取),而不是用于发送电子邮件的SMTP。 使用SMTP的示例(代码不是我的,请参阅下面的URL以获取更多信息):

import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myusername@gmail.com', 'mypassword')
mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

result, data = mail.search(None, "ALL")

ids = data[0] # data is a list.
id_list = ids.split() # ids is a space separated string
latest_email_id = id_list[-1] # get the latest

result, data = mail.fetch(latest_email_id, "(RFC822)") # fetch the email body (RFC822) for the given ID

raw_email = data[0][1] # here's the body, which is raw text of the whole email
# including headers and alternate payloads

here

无耻地偷走了

答案 1 :(得分:3)

Uku的回答看起来很合理。但是,作为一个实用主义者,我将回答你没有问过的问题,并建议一个更好的IMAP和SMTP库。

我没有在其他任何项目中使用过这些项目,因此您需要自己进行评估,但两者都可以使用得更好。

IMAP https://github.com/martinrusev/imbox

SMTP: http://tomekwojcik.github.io/envelopes/

答案 2 :(得分:1)

我建议你使用这个新的lib https://github.com/charlierguo/gmail

  

Google的GMail的Pythonic界面,以及您将使用的所有工具   需要。搜索,阅读和发送多部分电子邮件,存档,标记为   读/未读,删除电子邮件和管理标签。

用法

from gmail import Gmail

g = Gmail()
g.login(username, password)

#get all emails
mails = g.inbox().mail() 
# or if you just want your unread mails
mails = g.inbox().mail(unread=True, from="youradress@gmail.com")

g.logout()