How to send emails from server

From wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This page show how to send emails from a server by connecting to an external SMTP server.

As a alternative, you can also check the complete guide on how to build an email server.

Prerequisite

You will need a SMTP server to send the email. The one of your regular email address will work perfectly.

Install

$ sudo apt install exim4-daemon-light bsd-mailx

Configure

Edit file /etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='satellite'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1; ::1'
dc_readhost='example.org'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.example.org::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

The line dc_smarthost need to be updated with the name of port of the smtp server that you will use. Edit file /etc/exim4/passwd.client and add a line like

smtp.example.org:username:mYpa$$w0rd

Note: if smtp.example.org is a CNAME, you must use the destination of the CNAME in the passwd.client file.

$ host smtp.gmail.com
smtp.gmail.com is an alias for gmail-smtp-msa.l.google.com.
gmail-smtp-msa.l.google.com has address 74.125.206.108
gmail-smtp-msa.l.google.com has address 74.125.206.109
gmail-smtp-msa.l.google.com has IPv6 address 2a00:1450:400c:c04::6d

here you see on the first line that smtp.gmail.com is a CNAME (alias) to gmail-smtp-msa.l.google.com. In that case you can put *.google.com in the password file. Finally, activate the new configuration using

$ sudo systemctl reload exim4.service

Test

$ echo "body" | mailx -s "subject" address@example.org

You should receive the email in your mailbox