Mail server
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.
See lynda.com
- Linux: Email Services
- Linux System Engineer: Mail Systems Using Postfix
- Linux Foundation Cert Prep: Email Services (Ubuntu)
POP, IMAP and Exchange
- https://support.office.com/en-US/article/What-are-IMAP-and-POP-ca2c5799-49f9-4079-aefe-ddca85d5b1c9?ui=en-US&rs=en-US&ad=US&fromAR=1
- https://www.howtogeek.com/99423/email-whats-the-difference-in-pop3-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.
Postfix
Introduction to Linux Postfix Architecture for Beginners
Configure Postfix to use Gmail as a Mail Relay
- https://www.howtoforge.com/tutorial/configure-postfix-to-use-gmail-as-a-mail-relay/. Note one comment says to use App Passwords instead of the regular google account password.
- How to Set Up a Mail Agent for Command Line Email
- Easy Email-relay setup with Debian and Postfix using your Gmail account and a similar one How to configure Postfix to use an External SMTP Server
# apt install libsasl2-modules # nano /etc/postfix/main.cf
Delete the line "relayhost =" and add the following to the bottom of the file.
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_use_tls = yes
# cat /etc/ssl/certs/VeriSign_Universal_Root_Certification_Authority.pem | tee -a /etc/postfix/cacert.pem # nano /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 [email protected]:APP_PASSWORD
# chmod 400 /etc/postfix/sasl_passwd # /usr/sbin/postmap /etc/postfix/sasl_passwd # /etc/init.d/postfix reload # echo "Subject: Test mail from postfix" | sendmail -v [email protected]
- How to Use the Free Gmail SMTP Server to Send Emails Mar 2023
Adding Users, change user full name for Postfix
- How to set user account Name/Surname in postfix? sudo chfn (Change finger)
- chfn command in Linux with examples (it works).
- Adding Users and Aliases for Postfix
Setup a Local Only SMTP Email Server
- Setup a Local Only SMTP Email Server (Linux, Unix, Mac)
- Local only sendmail that delivers all mail to a directory
# Send to another user in the same machine echo "This is the email body" | sendmail -v -f sender_username receiver_username sudo receiver_username mutt
Send-only SMTP server
- How To Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 20.04
- How to Configure Postfix as a Send-Only SMTP Server on Ubuntu 20.04
- Installing and Configuring Postfix as a Send-only SMTP Server on Ubuntu 20.04
How to Build an Email Server on Ubuntu Linux
- https://www.linux.com/learn/how-build-email-server-ubuntu-linux, Part 2 & Part 3
- https://help.ubuntu.com/community/Postfix
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-14-04
- https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-postfix-on-ubuntu-14-04
- How to Setup IRedMail Server on Ubuntu 18.04 LTS
Docker
See Docker method
SSL
- How to create a Mail server with SSL/TLS on Linux
- How To Secure Your Linux Email Services with SSL/TLS
- Email forwarding
- Mail forwarding using Sendmail
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
DuckDuckGo Can Now Block Your Emails From Being Tracked
Send from google emails on Ubuntu
- How to configure Postfix to use Gmail SMTP on Ubuntu 16.04 / 17.10.
- Configure Postfix to use Gmail as a Mail Relay
- How to configure Postfix to use Gmail SMTP on Ubuntu 18.04 & 16.04
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/main.cf # 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(host.name = "smtp.gmail.com", port = 465, user.name = "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
Webmail
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:
- mailx
- mutt
- mpack
- sendmail
- ssmtp
mail command
- Mailutils includes programs for reading, composing, and sending email, as well as managing mailboxes and user accounts. Mailutils can be used with a variety of mail servers, including Postfix, Exim, Sendmail, and Courier.
- Postfix is an open-source mail transfer agent (MTA) that routes and delivers email to accounts that are external to the system. When you install Mailutils on Ubuntu, it will also install Postfix as a dependency if you don't already have some other MTA installed. See How To Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 20.04.
- Use dpkg -l | grep postfix to check if postfix is installed.
- “You have mail” – How to Read Mail in Linux Command Line
- How to Use the Linux mail Command
- Send Email in Linux from Command Line
- Details
sudo apt install mailutils postfix # OK # Select Internet Site. OK # Enter System mail name; e.g. example.com if your hostname of the server is mail.example.com
- Configure postfix: sudo nano /etc/postfix/main.cf
- Scroll to the bottom and change "inet_interfaces = all" to "inet_interfaces = loopback-only"
- sudo systemctl restart postfix
- echo "This is the body" | mail -s "This is the subject" -a "FROM:[email protected]" [dest address]
- Not work. Check /var/log/mail.log file. It shows the mails were delivered to the local user. ls /var/mail/$USER. Or switch to the user and run "mail". If we want to send emails out through an external SMTP server (like gmail), we need to provide a username/password. These are typically stored in a file like /etc/postfix/sasl_passwd.
mutt
Mutt is a command line email app for Linux and here's how to set it up
sendemail package
- http://bhfsteve.blogspot.com/2013/03/monitoring-web-page-for-changes-using.html
- sudo apt-get install sendemail
- Usage
sendEmail -f $USERNAME -s smtp.gmail.com:587 \ -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 smtp.gmail.com:587 -xu [email protected] -xp YOURPASSWORD \ -o tls=yes \ -u "Hello from sendEmail" \ -m "How are you? I'm testing sendEmail from the command line."
Modoboa
How to Set Up a Mail Server with Modoboa on Debian 10
Kolab
Install and Configure Kolab Groupware on Ubuntu 16.04 LTS
Criptext: private email service
- https://www.criptext.com/
- https://www.linuxuprising.com/2018/10/criptext-is-new-encrypted-email-service.html
Zimbra
How to Install Zimbra Collaboration Suite 8.8 on Ubuntu
Temporary/Disposable email
Create A Temporary Email From The Command Line With tmpmail