---
title: "Send mail to Gmail programatically with Python"
description: "#!/usr/bin/python import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from."
url: "https://h3manth.com/scribe/send-mail-gmail-programatically-python/"
canonical_url: "https://h3manth.com/scribe/send-mail-gmail-programatically-python/"
markdown_url: "https://h3manth.com/scribe/blog/send-mail-gmail-programatically-python.md"
publishDate: "2010-01-16T00:00:00.000Z"
author: "Hemanth HM"
category: "python"
tags: ["python"]
word_count: 88
reading_time_minutes: 1
x_markdown_tokens: 360
content_signal: "ai-train=yes, search=yes, ai-input=yes"
---

# Send mail to Gmail programatically with Python

> #!/usr/bin/python import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from.

#!/usr/bin/python

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 = "xyz@gmail.com"
gmail_pwd = "*******"

def mail(to, subject, text,
attach=[]):
  msg = MIMEMultipart()

  msg['From'] = gmail_user
  msg['To'] = to
  msg['Subject'] = subject

  msg.attach(MIMEText(text))
  
  for file in files:
        part = MIMEBase('application', "octet-stream")
        part.set_payload( open(file,"rb").read() )
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"'
                       % os.path.basename(file))
        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()

mail("xyz@example.com",
   "Hello from python!",
   "This is a email sent with python",
   "attachment1","attachment2")
