How to setup sendmail in ubuntu?


When it comes to sending email using Linux system, there are a few options to choose from. However, Sendmail is popular choices, and for good reason. Sendmail is efficient and reliable mail transfer agent (MTA) that handle large volume of emails.

In this article, we will show you step-by-step how to set up Sendmail on your Ubuntu system.

Before we start installation process, let's talk to understand how Sendmail works. Sendmail works by accepting email messages from local or remote mail clients, then relaying them to destination mail servers. This messages can delivered to other machines on the local network or to external addresses on Internet. Sendmail uses Simple Mail Transfer Protocol (SMTP) to communicate with any mail servers or clients.

Installing Sendmail on Ubuntu

The first step in setting up Sendmail on your Ubuntu system is to install it. To do so, open a terminal and enter following command −

sudo apt-get update
sudo apt-get install sendmail

This will download and install Sendmail package on your Ubuntu system.

Configuring Sendmail

Once Sendmail is installed, you need to configure it to work with your system. The main configuration file for Sendmail is located at /etc/mail/sendmail.cf. However, you should not edit this file directly. Instead, you should use sendmail.mc file, which is a macro configuration file that is used to generate sendmail.cf file.

To edit sendmail.mc file, open a terminal and enter following command −

sudo nano /etc/mail/sendmail.mc

This will open sendmail.mc file in Nano editor. In this file, you can set a variety of options for Sendmail, such as hostname, domain name, and mail relay settings. Here are a few examples of common settings −

define(`_CLASS_A_NET', `10.0.0.0/8')dnl
define(`_CLASS_B_NET', `172.16.0.0/12')dnl
define(`_CLASS_C_NET', `192.168.0.0/16')dnl
define(`_MAX_MESSAGE_SIZE',`10000000')dnl
define(`_QUEUE_DELIVERY', `30m')dnl

These settings define IP address ranges that are allowed to relay email through your system, the maximum message size that can be sent, and maximum time that an email can be in queue before it is delivered.

Once you have made your changes to sendmail.mc file, you need to generate sendmail.cf file. To do this, enter following command in terminal −

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

This will generate sendmail.cf file based on settings in sendmail.mc file.

Starting Sendmail

After you have installed and configured Sendmail, you need to start Sendmail service. To do this, enter following command in terminal −

sudo service sendmail start

This will start Sendmail service and enable it to send and receive emails.

Testing Sendmail

To test if Sendmail is working properly, you can send a test email from command line. To do this, enter following command −

echo "This is a test email" | mail -s "Test email" your@email.com

Replace "your@email.com" with your actual email address. This will send a test email to specified address with subject "Test email" and body text "This is a test email." If you receive email, then Sendmail is working properly.

Troubleshooting Sendmail

If you encounter any issues with Sendmail, there are a few things you can check. First, make sure that Sendmail service is running by entering following command in terminal −

sudo service sendmail status

This will show you the status of Sendmail service and whether it is running or not. If it is not running, you can start it by entering following command −

sudo service sendmail start

If Sendmail service is running but you are still having issues, you can check the logs for any error messages. The Sendmail logs are located in /var/log/mail.log file. You can view logs by entering following command in terminal −

sudo less /var/log/mail.log

This will open log file in less text editor. You can use arrow keys to scroll through logs and look for any error messages.

Additional Configuration Options

In addition to basic configuration options we covered earlier, there are many other options you can configure in sendmail.mc file. Here are a few examples −

  • Relaying options − You can configure Sendmail to relay emails to specific domains or IP addresses, or to require authentication for relaying. This is useful if you want to limit who can use your Sendmail server to send emails. For example, you can add following line to sendmail.mc file to allow relaying only for a specific domain −

FEATURE(`relay_hosts_only')dnl
FEATURE(`access_db')dnl
RELAY_DOMAIN(yourdomain.com)dnl
  • Virtual domains − You can configure Sendmail to handle email for multiple virtual domains, each with its own set of users and aliases. This is useful if you are hosting multiple domains on a single server. For example, you can add following lines to sendmail.mc file to set up a virtual domain −

FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable')dnl
VIRTUSER_DOMAIN_FILE(`/etc/mail/virtusertable')dnl
  • Anti-spam measures − You can configure Sendmail to implement various anti-spam measures, such as filtering out emails with suspicious content or rejecting emails from blacklisted IP addresses. For example, you can add following lines to sendmail.mc file to enable spam filtering −

FEATURE(`dnsbl', `dnsbl.sorbs.net')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`badmx', `dnsbl.sorbs.net')dnl
FEATURE(`accept_unresolvable_domains')dnl

By configuring these and other options in sendmail.mc file, you can customize Sendmail to meet your specific needs.

Using Sendmail with Web Applications

If you are running a web application on your Ubuntu system that needs to send emails, you can use Sendmail as mail transport agent. Most web applications, such as WordPress or Drupal, have an option to configure mail settings. To use Sendmail, you simply need to specify the path to Sendmail executable in application's mail settings.

For example, in WordPress, you can go to Settings > General > Email Address and enter email address that WordPress should use for sending emails. Then, in the "From Name" field, enter name that should be used as sender's name. Finally, in "SMTP Host" field, enter the path to Sendmail executable, which is usually /usr/sbin/sendmail.

By configuring your web application to use Sendmail, you can ensure that emails sent from your application are delivered reliably and efficiently.

Conclusion

In this article, we have provided you with a step-by-step guide on how to set up Sendmail on your Ubuntu system. We have covered installation process, how to configure Sendmail using sendmail.mc file, how to start Sendmail service, and how to test and troubleshoot Sendmail. By following these steps, you can set up a reliable and efficient mail transfer agent on your Ubuntu system.

Updated on: 26-Feb-2024

8K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements