provides software and services that enable enterprises
Live Chat 1-888-673-6564

Open Source Software Technical Articles

  • Home
  • Search
  • Contact Us
  • Products and Support
  • Services
  • Enterprise OSS Blog
  • Wazi Technical Blog
  • About Wazi
  • Attributions and Licensing
  • Supply Chain Compliance
  • How to Contribute
  • Contributors
  • Resources Library
  • Cloud Services
  • Partners
  • Customers
  • Community
  • Company
  • Careers
  • News and Events

Subscribe to Wazi by Email

Your email:


Enterprise Developer Support 24 x 7, Get a Support Quote Now!


click-here-to-chat-with-an-online-representative

download-oss-discovery

Latest Posts

  • A more colorful LibreOffice unveiled
  • Toward a more colorful LibreOffice
  • Flexible administration with Puppet's Facter and templates
  • Knock for OpenSSH
  • Get more out of phpMyAdmin
  • Image annotation in GIMP, Dia, and OpenOffice Draw
  • Solr, Drupal 7, and faceted search
  • Using FreeNAS' new full disk encryption for ZFS
  • Create distributed storage with Gluster
  • How to set up Solr 4.2 on Drupal 7 with Apache

Connect with Us!

Current Articles | RSS Feed RSS Feed

To Stay Informed, Let Your Computer Email You

Posted by Dmitry Kaglik on Thu, Mar 15, 2012
  
Email This Email Article  
Tweet  
  

Wouldn't it be nice to have your server send you regular email about system issues? That's an easy task for two simple SMTP email programs, sSMTP and Blat. These utilities don't provide all the options of an enterprise-class mail transfer agent (MTA) such as Sendmail, Qmail, or Postfix, but their simplicity makes them easy to manage and use.

sSMTP


Simple sendmail emulator (sSMTP) can compose an email message based on parameters you specify and relay it to an SMTP server. The tool does not work like a standalone SMTP server; in fact, it requires one for email delivery.

sSMTP is available through the package managers of multiple Linux distributions, and via source. For CentOS you can get the RPM from the Fedora Project's EPEL repository, or via Linux Packages Search.

Once you got your package installed, you need to configure it by editing the file /etc/ssmtp/ssmtp.conf as root. Each parameter in the file is well-documented, so you're unlikely to do something wrong. To get sSMTP up and running in a minimal configuration, make sure the ssmtp.conf file has at least three lines:
hostname=yourcompany.com
root=yourname@yourcompany.com
mailhub=smtp.yourcompany.com:25

These parameters specify your hostname, the email address for the From: field in the messages sSMTP sends, and the SMTP server and port for email delivery. Hostname is optional, but if you do not specify it, your email will contain the name of your computer as the sending host, which is not always what you want, and in some cases can lead to errors.

This basic configuration is enough if you are going to use an SMTP server in your own network, or maybe your ISP's SMTP server, but this SMTP connection will not be secure. If you want to use a secure connection between your computer and SMTP server, for example to use Google's Gmail or Microsoft's Windows Live SMTP servers, you need to add more details into your configuration file. Here is a sample configuration for Gmail:
hostname=yourcompany.com
root=yourname@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=yourname
AuthPass=yourpassword
UseSTARTTLS=YES
UseTLS=YES
AuthMethod=LOGIN

As you can see, a secure connection uses a different standard port on an SMTP server. You also need to provide your username and password. This password is kept in clear text in the .conf file, so make sure you provide proper security for the file. You don't have to keep the username and password in the configuration file, but if you don't, you'll need to provide them every time you use sSMTP, using the parameters –au and –ap. As a workaround, if neither of these methods suits you, I suggest creating a new Gmail ID just for sending these automated emails.

Once you have sSMTP installed and configured, you can use it by typing in some text manually:
$ ssmtp recipient@domain.com
To:formal_recipient@domain.com
Subject:test ssmtp

Hello, world!

Here I specified two different recipients. The one in the command line is mandatory, and will actually receive the email. The formal_recipient will be mentioned as the recipient in email header. If you skip the To: field, the recipient@domain.com will still get the email, but the message will say it's for "undisclosed recipients."
19a98812-f823-48dc-841e-bf029c63c6d7

Note the empty line between the Subject: line and main body: this is the key for sSMTP to tell where the email body starts. You can type your body in several lines, then use Ctrl-D to send the message.

Instead of typing the email body in the sSMTP interface, you can supply it from a text file. Let's create a file /tmp/ssmtp.txt with the following content:
To:recipient@domain.com
Subject:Files can be sent from sSMTP

You can email text from the file!

You still need an empty line before the body of your email. Now you can specify the file on your sSMTP command line:
$ ssmtp darkduck@darkduck.com </tmp/ssmtp.txt

This all is interesting, but manual usage of sSMTP is not something you need for automated jobs. Let's see how sSMTP works with a simple bash file.

First, create a text file /tmp/ssmtptemplate.txt with following contents:
To:recipient@domain.com
Subject:results of bash script

Here are the results of bash script:

Even if you don't need any text in the body of your message except for what comes from your bash script results, don't forget to leave an empty line after the Subject: line in the template.

Now create a bash script:
#copy template to home folder
cp /tmp/ssmtptemplate.txt ~

#rename file in home folder
mv ~/ssmtptemplate.txt send.txt

#copy files, adding results to template file
cp -r -u -v -L ~/Documents/* ~/bkup/ >>~/send.txt

#send the file
ssmtp recipient@domain.com <~/send.txt

#remove the temporary file
rm ~/send.txt

This script copies the template from its location, adds the results of the jobs you want to monitor into the file, sends the file to the recipient, and removes the temporary file. If you remember, the cp command does not produce any output by default, so use the –v parameter for verbose mode to ensure that the results of the copying are shown in the output file.

Now you just need to make the bash script file executable and schedule it using cron so you can get regular updates with results in your inbox.

Using the same or similar methods, you can inject sSMTP command into other automated scripts – for example into shutdown scripts, or into a script that pings one server from another and sends an email in case of bad results. Both of these methods should inform you about unexpected server shutdowns or other issues that require immediate response.

Blat


While sSMTP is a good tool for Linux, you might also need something similar for Windows. Blat is a free open source Win32 emailer. You can run it on any version of Windows, either 32- or 64-bit – there are separate versions for these architectures. You can download the latest version from the project's SourceForge page.

Blat is distributed as an archive file. You need to extract the folder full from the archive onto your hard disk. For this example I put it in c:/blat.

As with sSMTP, you can specify connection parameters directly in the command line, but it is easier to use Blat if you "install" it and get these parameters stored in the Windows registry. For a simple installation of Blat, from the Windows command line, run:
> c:/blat/blat.exe -installSMTP smtp.yourcompany.com yourname@yourcompany.com

There are many more parameters, which you can read about in the official Blat documentation, but these two, which specify the SMTP server for your outgoing mail and your email address, are the most important ones. The installation command creates an entry in the Windows registry under HKEY_LOCAL_MACHINE\SOFTWARE\Public Domain\Blat that contains the specified information.

Unfortunately, Blat does not allow secure connections by default. To use secure servers, you can install and configure the free open source application stunnel, then specify servers and ports as per stunnel's configuration. If you use stunnel on your local machine, your SMTP server should be 127.0.0.1, and stunnel will map it to the correct external secure SMTP server and port.

To use Blat on the command line, specify everything in a single command:
> c:/blat/blat.exe - -to recipient@domain.com -subject "Blat is working!"
-body "Here is an email from Blat"

Use standard Windows syntax for filenames and parameters in the Blat command. If a parameter contains any spaces, it should be surrounded by quotation marks.

The first hyphen in the command, right after blat.exe, indicates the place where a text file with the email body should be. Here, I typed the body manually in the corresponding parameter instead. But Blat lets you use files to accumulate the information you need, just as sSMTP does.

To automate message transfers, create a .bat file with following contents:
mkdir "c:\backup folder"

copy "c:\source folder\*.*" "c:\backup folder\" > "c:\blat body.txt"

c:\blat\blat.exe "c:\blat body.txt" -to recipient@domain.com
-subject "Batch job has finished"

del "c:\blat body.txt"

This batch file creates a backup folder, copies the source folder files into the backup, accumulating the results in the log file, and then uses the log file as the email body in Blat. You can schedule the execution of the batch file using the built-in Windows scheduler.

sSMTP and Blat show that whatever operating system you use, you can find free open source applications that allow you to send messages to any email client.
Follow @openlogic
Follow @CloudSwing

This work is licensed under a Creative Commons Attribution 3.0 Unported License
Creative Commons License.Follow @openlogic
Follow @OSCloudServices

This work is licensed under a Creative Commons Attribution 3.0 Unported License
Creative Commons License.
Tags: CentOS, Technical, Tutorial, Postfix, Messaging, blat, qmail, stunnel, sendmail

Comments

I have error 
 
[root@erplab01 ~]# ssmtp haimt2@vng.com.vn 
Subject:test ssmtp 
 
ssmtp: Cannot open mail:25 
 
----------------------------------- 
file /etc/ssmtp/ssmtp.conf: 
 
root=haimt@vng.com.vn 
mailhub=mail 
mailhup=10.xx.xx.xxx 
AuthUser=haimt@abc.com.vn 
AuthPass=pass 
AuthMethod=LOGIN 
----------------------------------- 
 
I have wrong? 
Hai Mai.
Posted @ Tuesday, January 29, 2013 11:55 AM by haimt2
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Loading...
Error sending email
Email sent successfully

Email article
Email To : 
Your name : 
Message : (maximum 200 characters)
Home | Search | Contact Us | Products and Support | Services | Enterprise OSS Blog | Wazi Technical Blog | Resources Library | Cloud Services | Partners | Customers | Community | Company | Careers | News and Events
Products
OpenLogic Exchange (OLEX)
License Compliance Module
OSS Discovery
OSS Deep Discovery
OpenUpdate
Services
Open Source Support
CentOS Support
Scanning & Compliance
Open Source Training
Professional Services
Solutions
Support & Indemnification
Open Source Governance
Open Source Scanning
Open Source Provisioning
Consulting & Training
Contact Us
1-888-673-6564


© 2013 OpenLogic, Inc. All rights reserved.
Site Map  |  Privacy Policy