Mail server linux script

How to send emails from a bash script using ssmtp?

I was recently working on a script to monitor some the TCP connections on one of my DigitalOcean servers and I wanted to receive an email every time the connections count was greater than 200. As I wanted to use SMTP I decided to go with ssmtp .

Here is a mini-tutorial on how to install and configure ssmtp and send emails directly from your command line or bash scripts.

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Introduction

SSMTP is a tool that delivers emails from a computer or a server to a configured mail host. SSMTP is not an email server itself and does not receive emails or manage a queue. One of its primary uses is for forwarding automated email (like system alerts) off your machine and to an external email address.

Prerequisites

  • Access to an Ubuntu 18.04 server as a non-root user with sudo privileges, and an active firewall installed on your server. To set these up, please refer to our Initial Server Setup Guide for Ubuntu 18.04
  • An SMTP server along with SMTP username and password, this would also work with Gmail’s SMTP server, or you could setup your own SMTP server by following the steps from this tutorial on [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04](How to Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 16.04)

Installing SSMTP

In order to install SSMTP you’ll need to first update your apt cache with:

Читайте также:  Alt linux как установить принтер

Then run the following command to install SSMTP:

Another thing that you would need to install is mailutils , to do that run the following command:

Configuring SSMTP

Now that you have ssmtp installed, in order to configure it to use your SMTP server when sending emails you need to edit the SSMTP configuration file.

Using your favourite text editor opent the /etc/ssmtp/ssmtp.conf file:

You need to incldue the your SMTP configuration:

root=postmaster mailhub=your_smtp_host.com:587 hostname=your_hostname AuthUser=your_gmail_username@your_smtp_host.com AuthPass=your_gmail_password FromLineOverride=YES UseSTARTTLS=YES 

Sending emails with SSMTP

Once your configuration is done, in order to send an email just run the following command:

You can run this directly in your terminal or include it in your bash scripts.

Sending A File with SSMTP (optional)

If you need to send files as attachments, you can use mpack .

To install mpack run the following command:

Next, in order to send an email with a file attached, run the following command

The above command would send an email to your_recepient_email@yourdomain.com with the your_file.zip attached.

Conclusion

SSMTP is a great and reliable way to implement SMTP email functionality directly in bash scripts.

For more information about SSMTP I would recommend checking the official documentation here.

Hope that this helps! Regards, Bobby

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Источник

Mail server linux script

author image

Vishal Chauhan

Published on 2019-09-20· Updated on 2020-07-17

The author voluntarily contributed this tutorial as a part of Pepipost Write to Contribute program.

Introduction

Notifications are getting more important these days to stay updated among various online activities. Moreover, these notifications can be emails, SMS or push. This tutorial is going to demonstrate you the simplest way of sending notifications, over one of the most popular channels that is email. You are going to learn the process of sending emails from the terminal or a shell script from a Linux operating system, using some of the popular CLI tools.

This tutorial is going to help you in sending critical server-level emails like Cron reports, script logs, customer registrations, receipt, bank statement over email. There are many ways to send emails from the server, but let’s explore the tool that’s easy to install and easy to code.

Читайте также:  Gcc arm linux gnueabihf ubuntu

With simple libraries and little configurations, you can have a CLI tool in your Linux OS that you can use to send mails from the terminal.

Prerequisites

  • Linux operating system
  • SMTP Configurations (SMTP server details and authentication credentials)
  • Your favourite editor (Optional)
  • Configure Gmail SMTP/ready with any other custom SMTP server details. In this tutorial, you are going to use Gmail SMTP to send emails, so make sure that;
    undefinedundefined

Google SMTP server configurations would look something like this:

  • SMTP Server/Hostname: smtp.gmail.com
  • SMTP Username: [Your Gmail Address]
  • SMTP password: [Your Gmail Password]
  • SMTP Port: 587
  • TLS/SSL: Required

Its time to now open terminal

There are various tools and libraries which you can install to send emails from the terminal. Few of the popular libraries are:

In this tutorial, you’re going to learn the steps on how to install and use sSMTP to send mails from your Linux command line. Click here, in case you want to learn how to install and use Mailx to send mails from your Linux command line.

How to install sSMTP to send mails from your Linux command line (CLI)

Step 1

Use the below command to install ssmtp:

sudo apt-get install ssmtp

Optional:
CentOS users can use the below command to install ssmtp:

In CentOS, you may see an error during installation as «package ssmtp is not available», in such a case below command, is going to be helpful to fix the issue:

sudo yum --enablerepo=extras install epel-release

Step 2

Once ssmtp installed successfully, you need to make the below global configurations which required for sending mail.

Open the following file in your favourite editor:

sudo vim /etc/ssmtp/ssmtp.conf

Edit the above file with the below details:

mailhub=smtp.gmail.com:587 useSTARTTLS=YES AuthUser=username-here AuthPass=password-here TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

The above configuration is going to be used to send email using your Gmail SMTP. In case you want to use some other third-party SMTP, then mention the hostname of the same. e.g. if you want to use Pepipost SMTP, then instead of smtp.gmail.com, you need to mention smtp.pepipost.com in the mailhub parameter. mailhub is used for SMTP server address which consists of two part host:port

Now you are all set to sending mails from the command line (CLI).

Step 3

There are multiple ways to use ssmtp command to send emails.

Читайте также:  Калибровка сенсорного экрана astra linux

Case 1: Send Mail Directly From The Command Line

For this, copy-paste the below command, and you’re ready to send email from your command line:

-vvv is the verbosity to see the logs while sending the mail

Case 2: Send Mail From A Shell Script

You can use the same ssmtp to send mail from a shell script too. For that, open your preferred editor and create a shell script file with name saymail.shand copy-paste the below code:

#!/bin/sh SUBJECT="Test Subject" TO /cdn-cgi/l/email-protection" data-cfemail="2e4d5c4f54576e57415e434f4742004d4143">[email protected]" MESSAGE="Hey There! This is a test mail" echo $MESSAGE | sudo ssmtp -vvv $TO

Make sure you have set the right permission access to your script file. If not, here is the command to set the permission:

Now, the code is ready to be executed. Just run the shell script using the below command:

Hope now you’re able to send mails using the shell script too.

Below are few errors/exceptions which you may encounter while sending the mail using ssmtp:

Error 1

In case while sending the email, if might get the below error as output:
ssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 — gsmtp)

Solution: In such a case, try doing following as solution:

  1. Enable «Allow less secure app» in your google accounts settings, as explained in the above prerequisites section.
  2. The provided login credentials can be invalid. Make sure you have the correct credentials.

Once the issue is fixed, re-run the shell script and the success output will be something like this;

[] EHLO kali [] STARTTLS [] EHLO kali [] AUTH LOGIN [] dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t [] MAIL FROM:[email protected]> [] RCPT TO:[email protected]> [] DATA [] Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 [->] From: "root" [email protected]> [->] Date: Thu, 19 Sep 2019 21:45:14 +0530 [->] Hey There! This is a test mail [->] [->] . [] QUIT [

Conclusion

Hope the steps explained above were useful and you were able to successfully send mail using linux command line (CLI). Feel free to contribute, in case you encountered some issue which is not listed as a part of this tutorials.
Use below comments section to ask/share any feedback.

Grade My Email
Check your spam now?

Netcorecloud's toolkit is the solution to all your email problems.

Источник

Оцените статью
Adblock
detector