i have a python script and would like to know how to email the output of the script in python.
i can do it from the command line(kshell) with in *nix but would like something like this in the script.
somescript.py; echo "test" | mailx john_smith@xyz.com

Recommended Answers

All 2 Replies

A very crude method would be to capture your output, and then execute the same command via os.system or a similar call.

Alternately you could make use of smtplib to send the email to a mail server's listener, and send it that way.
Example of using smtplib.
Keep in mind that in this example, the mail listening agent is on the same machine as the script is running. If this is not the case you'll need the ip address and port that the mail daemon is listening on of the server where this service is running.

Something like the following is a simple example and usually works. If not, then you will have to Google for your specific sendmail app.

fromaddr = "<me@localhost>"                                            
toaddrs  = "<you@localhost>"
msg = "Test of Python's sendmail\n"
                                                                                
# The actual mail send part                                
server = smtplib.SMTP('localhost')                                       
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
print server.verify( toaddrs )
server.quit()
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.