2013-08-09 2 views
3

Хорошо, я работаю над типом системы, чтобы начать работу с моим компьютером с помощью sms-сообщений. Я могу получить его, чтобы отправить начальное сообщение:Получать ответы от Gmail с помощью smtplib - Python

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, а затем сохранить его в переменной для последующих функций.

ответ

9

Вместо SMTP, который используется для отправки электронной почты, вы должны использовать POP3 или IMAP (последнее предпочтительнее). Пример использования SMTP (код не мой, смотрите ниже URL для получения дополнительной информации):

import imaplib 
mail = imaplib.IMAP4_SSL('imap.gmail.com') 
mail.login('[email protected]', '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

2

ответ КСУ выглядит разумным. Однако, как прагматик, я собираюсь ответить на вопрос, который вы не задали, и предложить более приятную библиотеку IMAP и SMTP.

Я не использовал их самостоятельно ни в каких других побочных проектах, поэтому вам нужно будет сделать свою собственную оценку, но обе они гораздо приятнее в использовании.

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

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

1

Я могу предложить вам использовать этот новый Lib https://github.com/charlierguo/gmail интерфейс

Pythonic в GMail Google, со всеми инструментами, вы будете необходимость. Поиск, чтение и отправка многостраничных писем, архивирование, отметьте как чтение/непрочитание, удаление писем и управление ярлыками.

Использование

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="[email protected]") 

g.logout() 
+0

Отличная библиотека, но нет поддержки Python3. – BoppreH

Смежные вопросы