Mail server

From 太極
Jump to navigation Jump to search

Running an Email Server

  • Mail Transport/Transfer Agents (MTAs) - send messages between servers (required)
  • Mail Delivery Agents (MDAs) - store messages in the recipient's mailbox (required)
  • Mail User Agents (MUA) - software for reading messages

You need a domain name and appropriate MX records in your DNS.


  • Linux: Email Services
  • Linux System Engineer: Mail Systems Using Postfix
  • Linux Foundation Cert Prep: Email Services (Ubuntu)

POP, IMAP and Exchange

POP works by contacting your email service and downloading all of your new messages from it. Once they are downloaded onto your PC or Mac, they are deleted from the email service.

IMAP allows you to access your email wherever you are, from any device. When you read an email message using IMAP, you aren't actually downloading or storing it on your computer; instead, you're reading it from the email service. As a result, you can check your email from different devices, anywhere in the world: your phone, a computer, a friend's computer.

Exchange offers the same syncing capabilities as IMAP, plus much more. Exchange is a Microsoft product, giving you the ability to still use Outlook as your email service and benefit from Exchange functionality.


Introduction to Linux Postfix Architecture for Beginners

Configure Postfix to use Gmail as a Mail Relay

Adding Users, change user full name for Postfix

Setup a Local Only SMTP Email Server

# Send to another user in the same machine
echo "This is the email body" | sendmail -v -f sender_username receiver_username
sudo receiver_username

Send-only SMTP server

How to Build an Email Server on Ubuntu Linux


See Docker method


Raspberry Pi Email Server

Make Your Own Raspberry Pi Email Server

Ways to Keep Your Email Address Hidden

6 Ways to Keep Your Email Address Hidden


DuckDuckGo Can Now Block Your Emails From Being Tracked

Send from google emails on Ubuntu

Change your google account to use less secure authentication. Otherwise it won't work and you will receive an email with a subject "Critical security alert" after you try to send out an email.

sudo apt install mailutils
sudo nano /etc/postfix/   # no account information
sudo nano /etc/postfix/sasl_passwd # contains account information
cat /etc/ssl/certs/thawte_Primary_Root_CA.pem | sudo tee -a /etc/postfix/cacert.pem
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo apt-get install --reinstall postfix
sudo /etc/init.d/postfix restart
sudo /etc/init.d/postfix reload
echo "Test Email message body" | mail -s "Email test subject" [email protected] # works

We can actually send to other email accounts. For example, we can use mailR package to send emails in R

send.mail(from = "[email protected]",
  to = c("[email protected]"),
  replyTo = c("[email protected]"),
  subject = "Test",
  body = "test",
  smtp = list( = "", port = 465, 
     = "yourname", passwd = "XX", ssl = TRUE),
  authenticate = TRUE,
  send = TRUE)

New domain

If you just bought a new domain name do not forget to fix it's emails!

Use Zoho Mail With Your Domain

How to Migrate from Gmail to Zoho Mail With Your Domain

How to Send an Email with a Different “From” Address in Outlook

How to Send an Email with a Different “From” Address in Outlook. How Email Providers Handle Messages Sent From a Different “From” Address? How Do Scammers Use Fake “From” Addresses?

Bash Script to Send a Mail When ...

Bash Script to Send a Mail About New User Account Creation


Install WebMail Lite PHP based Webmail Client on Debian 9.1

You have new mail

What is the "You have new mail" message in Linux/UNIX?

Command line tools

6 Ways to Send Email from the Linux Command Line:

  • mail
  • mailx
  • mutt
  • mpack
  • sendmail
  • ssmtp


“You have mail” – How to Read Mail in Linux Command Line

sudo apt install mailutils


Mutt is a command line email app for Linux and here's how to set it up

sendemail package

sendEmail -f $USERNAME -s \
            -xu $USERNAME -xp $PASSWORD -t $USERNAME \
            -o tls=yes \
            -u "Web page changed" \
            -m "Visit it at $URL"

sendEmail -f [email protected] -t [email protected] \
            -s -xu [email protected] -xp YOURPASSWORD \
            -o tls=yes \
            -u "Hello from sendEmail" \
            -m "How are you? I'm testing sendEmail from the command line."


How to Set Up a Mail Server with Modoboa on Debian 10


Install and Configure Kolab Groupware on Ubuntu 16.04 LTS

Criptext: private email service


How to Install Zimbra Collaboration Suite 8.8 on Ubuntu

Temporary/Disposable email

Create A Temporary Email From The Command Line With tmpmail

Trouble shooting