Hey guys i always needed a mailer script which can send me hourly/daily/weekly updates of my diffrent programs running on linux box.
I tried sendmail and mutt but they were not much impressive.
I made a python script for myself and this works like KILLER.
I dont had a SMTP details of my clients server neither access to it.
This badass script in python worked well for me, hope it will help you too ;)
#!/usr/bin/python
# Import smtplib for the actual sending function
import smtplib
import argparse
# Import the email modules we will need
from email.mime.text import MIMEText
parser = argparse . ArgumentParser ( description = 'This is a demo script by Amey Jadiye' )
parser . add_argument ( '-s' , '--subject' , help = 'Subject' , required = True )
parser . add_argument ( '-b' , '--body' , help = 'Body' , required = True )
parser . add_argument ( '-t' , '--to' , help = 'To' , required = True )
parser . add_argument ( '-f' , '--sender' , help = 'From' , required = False )
args = parser . parse_args ()
msg = MIMEText ( args . body )
# me == the sender's email address
# you == the recipient's email address
me = "demo@any-domain-you-want.com"
if args . sender is not None :
me = args . sender
you = args . to
msg [ 'Subject' ] = args . subject
msg [ 'From' ] = me
msg [ 'To' ] = you
# Send the message via our own SMTP server, but don't include the
# envelope header.
s = smtplib . SMTP ( 'localhost' )
s . sendmail ( me , [ you ], msg . as_string ())
s . quit ()
if you do adjust following things you can send attachment too.
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
file = '/home/amey-xps/logs/server.out.png'
fp = open ( file , 'rb' )
img = MIMEImage ( fp . read ())
fp . close ()
msg . attach ( img )
# I used image here , you can use diffrent file types with MIMEText, MIMEImage, MIMEAudio, MIMEBase
Happy coding ….. :)