Low memory usage SMTP Send-Only
Written by @mikho, 1 May 2021
Article was migrated from WordPress to Vanilla in March 2022
In the LowEndSpirit, we tend to look for resource-efficient alternatives. Here is an alternative to use instead of Postfix, Sendmail, or Exim.
Often when installing and running a web application or script you need an SMTP server to send an email, rarely there is the need to receive any email. It works equally well using ssmtp, which also is simple and fast to install. It takes two minutes to install and configure.
RedHat, CentOS7, Fedora
yum install ssmtp
If you receive a “Package ssmtp is not available” error, you’ll need to install EPEL on your machine with the following command:
yum --enablerepo=extras install epel-release
Once done, you’ll be able to install ssmtp using the above command.
apt-get install ssmtp
The configuration is done in the /etc/ssmtp/ssmtp.conf and there is only a couple of settings to change:
The mail server you must send mail through (relay). In this guide we will use GMail smtp Server.
From Line Override
Set to YES to allow the use of others choose from addresses other than the system itself.
The username or email adress on the account used to login to gmail.
The password for above account
Set to Yes to use TLS when connecting to the SMTP server.
## Config file for sSMTP sendmail ## The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=postmaster # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.gmail.com:587 [email protected] AuthPass=YourtopSecretPassw0rd! UseSTARTTLS=YES # Where will the mail seem to come from? #rewriteDomain= # The full hostname hostname=debianVPS.local # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: addressFromLineOverride=YES
No reboots required.
To use ssmtp with the PHP mail() function, you have to edit the sendmail_path parameter in php.ini to something like this:
sendmail_path = /usr/sbin/ssmtp -t
You have no open ports, everything just works!