Fetchmail: Tutorial & Best Practices

Bringing Email to Your Linux Server

Fetchmail is a versatile and powerful utility that enables you to retrieve email messages from one or multiple remote mail servers using popular protocols such as POP3, IMAP, and even ETRN. It acts as a mail retrieval agent, pulling emails from remote mailboxes and delivering them to your Linux server. Fetchmail is typically used on servers without a graphical user interface (GUI), making it an ideal solution for Linux server administrators.

Fetchmail serves as the bridge between your remote mail servers and your Linux server. It eliminates the need for manual email checking by automating the retrieval process. With Fetchmail, you can consolidate all your email accounts onto a single server, making it easier to manage and organize your messages. Whether you are running a personal server or managing a large-scale infrastructure, Fetchmail saves you time and effort by bringing email directly to your server.

Installing Fetchmail

To install Fetchmail on Debian-based distributions, including Ubuntu, you can use the apt package manager. Open a terminal and run the following command:

sudo apt install fetchmail

For Red Hat-based distributions like CentOS, you can use the yum package manager. Open a terminal and run the following command:

sudo yum install fetchmail

Configuring Fetchmail

Once Fetchmail is installed, the next step is to configure it to fetch emails from your remote mail servers. The main configuration file for Fetchmail is usually located at /etc/fetchmailrc. This file contains settings and instructions on how to connect to your mail servers and retrieve emails. You will need to edit this file to match your email account details.

Here is an example configuration for Fetchmail:

set postmaster "your_email@example.com"
set no bouncemail

poll pop.example.com with proto POP3
  user 'your_username' there with password 'your_password' is 'your_local_username' here

In the above configuration, replace pop.example.com with the address of your POP3 server and adjust the username, password, and local username accordingly. You can add multiple poll sections to fetch emails from different servers.

Best Practices

To ensure a smooth experience with Fetchmail, consider the following best practices:

  • Security: Protect the configuration file (/etc/fetchmailrc) by setting appropriate file permissions (chmod 600 /etc/fetchmailrc). This prevents unauthorized access to your email account credentials.

  • Scheduling: Use a cron job to schedule regular fetchmail execution. This allows you to automate the email retrieval process at specific intervals (e.g., every 5 minutes).

  • Logging: Enable logging in the fetchmail configuration file (set syslog). This helps you troubleshoot issues and monitor the fetchmail activity.

  • Error Handling: Set up proper error handling mechanisms. You can specify the location for undeliverable mail (set no spambounce) and define actions for specific errors.


Here are a few common issues you may encounter while using Fetchmail:

  • Connection Issues: Ensure that your Linux server has network connectivity and can reach the remote mail server. Verify firewall settings if necessary.

  • Authentication Problems: Double-check your username and password for the remote mail server. Ensure that you have provided the correct account details.

  • Mailbox Size: If you have a large number of emails or a large mailbox size, fetching all emails at once may take a long time or cause performance issues. Consider using appropriate options to limit the number of retrieved messages or set up a mailbox size limit.


Fetchmail brings convenience and efficiency to Linux server administrators by automating the process of retrieving emails from remote mail servers. By installing and configuring Fetchmail on your Linux server, you can streamline your email management and focus on other important tasks. Embrace the power of Fetchmail, and say goodbye to manual email checking forever!