-
-
Save MinhazAbtahi/7850548068b24b5bc8ef6342bbf951c3 to your computer and use it in GitHub Desktop.
Send an email through Gmail programmatically using Python's smtplib.
Code modified from http://kutuma.blogspot.com/2007/08/sending-emails-via-gmail-with-python.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/python | |
| # Adapted from http://kutuma.blogspot.com/2007/08/sending-emails-via-gmail-with-python.html | |
| import getpass | |
| import smtplib | |
| from email.MIMEMultipart import MIMEMultipart | |
| from email.MIMEBase import MIMEBase | |
| from email.MIMEText import MIMEText | |
| from email import Encoders | |
| import os | |
| gmail_user = "you@should.login" | |
| gmail_pwd = "wrong password" | |
| def login(user): | |
| global gmail_user, gmail_pwd | |
| gmail_user = user | |
| gmail_pwd = getpass.getpass('Password for %s: ' % gmail_user) | |
| def mail(to, subject, text, attach=None): | |
| msg = MIMEMultipart() | |
| msg['From'] = gmail_user | |
| msg['To'] = to | |
| msg['Subject'] = subject | |
| msg.attach(MIMEText(text)) | |
| if attach: | |
| part = MIMEBase('application', 'octet-stream') | |
| part.set_payload(open(attach, 'rb').read()) | |
| Encoders.encode_base64(part) | |
| part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(attach)) | |
| msg.attach(part) | |
| mailServer = smtplib.SMTP("smtp.gmail.com", 587) | |
| mailServer.ehlo() | |
| mailServer.starttls() | |
| mailServer.ehlo() | |
| mailServer.login(gmail_user, gmail_pwd) | |
| mailServer.sendmail(gmail_user, to, msg.as_string()) | |
| mailServer.close() | |
| # Example! | |
| def example(): | |
| email = raw_input("Your Gmail address: ") | |
| login(email) | |
| mail("dbieber@princeton.edu", "Automate your life: sending emails", "Why'd the elephant sit on the marshmallow?") | |
| example() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment