KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
So I can login to and send mail through gmail using smtplib (using the script below), but I was just wondering if using oauth2 was an option like with imaplib? I didn't see anything on the smtplib documentation page about oauth and I haven't found anything googling. Thanks. #! /usr/bin/python import smtplib to = 'myemailaddress' gmail_user = 'myemailaddress' gmail_pwd = 'passwd' smtpserver = smtplib.SMTP("smtp.gmail.com",587) smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo smtpserver.login(gmail_user, gmail_pwd) header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n' print header msg = header + '\n this is test msg from me \n\n' smtpserver.sendmail(gmail_user, to, msg) print 'done!' smtpserver.close(); Edit: Thanks to samy.vilar for the very detailed explaination provided in his answer. However, I'm having a little trouble. Here is my script: #! /usr/bin/python import oauth2 as oauth import oauth2.clients.smtp as smtplib consumer = oauth.Consumer('anonymous', 'anonymous') token = oauth.Token('1/MI6B2DqJP4FEkDRLUKrD5l46sQ0758-2ucEKBY-DeB0', 'NysqNqVTulFsdHpSRrPP56sF') url = "https://mail.google.com/mail/b/testing.oauth.1@gmail.com/smtp/" conn = smtplib.SMTP('smtp.googlemail.com', 587) conn.set_debuglevel(True) conn.ehlo('test') conn.starttls() conn.authenticate(url, consumer, token) header = 'To:testing.oauth.1@gmail.com\n' + 'From: testing.oauth.1@gmail.com\n' + 'Subject:testing \n' msg = header + '\n this is test msg from me \n\n' conn.sendmail('testing.oauth.1@gmail.com', 'testing.oauth.1@gmail.com', msg) What is puzzling me, is that it appears to authenticate ok: send: 'ehlo test\r\n' reply: '250-mx.google.com at your service, [75.173.8.127]\r\n' reply: '250-SIZE 35882577\r\n' reply: '250-8BITMIME\r\n' reply: '250-STARTTLS\r\n' reply: '250 ENHANCEDSTATUSCODES\r\n' reply: retcode (250); Msg: mx.google.com at yo
Tags (comma-separated)
Save Edits
Cancel