Skip to content

Instantly share code, notes, and snippets.

@dirkk0
Created February 5, 2014 08:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dirkk0/8819638 to your computer and use it in GitHub Desktop.
Save dirkk0/8819638 to your computer and use it in GitHub Desktop.
python script to send mail including docopt
#!/usr/bin/env python
"""Mail.
Usage:
mail.py (-h | --help)
mail.py --version
mail.py [--to <to>] [--from <from>] [--cc <cc>] [--subject <subject>] [--message <message>]
Options:
-h --help Show this screen.
--from sender Set sender [default: me@domain.com]
--to recipient Set recipient [default: you@domain.com]
--cc recipient Set recipient
--subject subject Set subject [default: This is a test]
--message message Set message [default: Hi,this is a test. yours, dirk]
"""
from docopt import docopt
import smtplib
def send(from_addr, to_addr_list, cc_addr_list,
subject, message,
login, password,
smtpserver):
# smtpserver='smtp.gmail.com:587'):
header = 'From: %s\n' % from_addr
header += 'To: %s\n' % ','.join(to_addr_list)
header += 'Cc: %s\n' % ','.join(cc_addr_list)
header += 'Subject: %s\n\n' % subject
message = header + message
server = smtplib.SMTP(smtpserver)
server.starttls()
server.login(login,password)
problems = server.sendmail(from_addr, to_addr_list, message)
server.quit()
if __name__ == '__main__':
arguments = docopt(__doc__, version='abc')
# print(arguments)
from_addr = arguments['--from']
to_addr_list = [arguments['--to']]
cc_addr_list = [arguments['--cc'] or '']
notify_subject = arguments['--subject']
notify_message = arguments['--message']
login = 'login'
password = 'password'
smtpserver = 'smtp.domain.com:587'
send(from_addr, to_addr_list, cc_addr_list, notify_subject, notify_message,
login, password, smtpserver)
import sendmail
from_adress = "me@domain.com"
to_address_list = ['you@domain.com']
cc_address_list = ['you_too@domain.com']
notify_subject = 'Important message, please read'
notify_message = 'Hi\n please take some action\nyours truly'
login = 'login'
password = 'password'
smtpserver = 'smtp.domain.com:587'
sendmail.send(
from_adress,
to_address_list,
cc_address_list,
notify_subject,
notify_message,
login,
password,
smtpserver
)
python sendmail.py --from me@domain.com --to you@domain.com --subject 'hi, there' --message 'abc'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment