05 April 2008

Send all files in a directory to your gmail

Sends all files in the current directory to your email. Reads the subject and your gmail password from the console, and sends an email for each file
#!/usr/bin/python

import os
import smtplib
from getpass import getpass 
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email import Encoders

USER = '<user>@gmail.com'
PASS = getpass("Password for %s: " % USER)
SUBJECT = raw_input("Subject: ")

print "Connecting to server"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(USER, PASS)

print "Subject is %s" % SUBJECT

for f in os.listdir('.'):
  msg = MIMEMultipart()
  msg['From'] = USER
  msg['To'] = USER
  msg['Date'] = formatdate(localtime=True)
  msg['Subject'] = SUBJECT

  part = MIMEBase('application', 'octet-stream')
  part.set_payload(open(f, 'rb').read())
  Encoders.encode_base64(part)
  part.add_header('Content-Disposition',
                  'attachment; filename="%s"' % os.path.basename(f))
  msg.attach(part)

  print "Sending %s" % f 
  server.sendmail(USER, USER, msg.as_string())
  print "Done" 

server.close()
print "All Done"

1 comments:

entelech1a said...

Hello Παναγιωτη...