Skip to content

Instantly share code, notes, and snippets.

@korrosivesec
Forked from ser1zw/send-message.py
Created January 17, 2018 18:09
Show Gist options
  • Save korrosivesec/6dc89afa86e8137ffe967fae073b7de7 to your computer and use it in GitHub Desktop.
Save korrosivesec/6dc89afa86e8137ffe967fae073b7de7 to your computer and use it in GitHub Desktop.
Send E-mail from eml file in Python
#!/usr/bin/env python
# -*- mode: python; coding: utf-8 -*-
import sys
import os.path
import smtplib
if len(sys.argv) <= 2:
print('Usage:')
print(' $ python ' + sys.argv[0] + ' mailfrom rcptto <emlfile>')
print('')
print('Parameter:')
print(' mailfrom: MAIL FROM address.')
print(' rcptto: RCPT TO address.')
print(' emlfile: Message file in eml format. When emlfile is not specified, an empty message will be sent.')
print('')
print('Example:')
print(' $ python ' + sys.argv[0] + ' mailfrom@example.com rcptto@example.com mail.eml')
sys.exit(0)
server = 'localhost'
port = 25
mailfrom = sys.argv[1]
rcptto = sys.argv[2].split(',')
message = ''
if len(sys.argv) >= 4:
filename = sys.argv[3]
if not os.path.isfile(filename):
print('File "' + filename + '" not found.')
sys.exit(0)
f = None
try:
f = open(filename)
message = f.read()
finally:
if f != None:
f.close()
smtp = None
try:
try:
smtp = smtplib.SMTP(server, port)
smtp.sendmail(mailfrom, rcptto, message)
except Exception as e:
print('Failed to send mail.')
print(str(e))
else:
print('Succeeded to send mail.')
finally:
if smtp != None:
smtp.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment