Comparison: mail vs. msmtp

1. What is mail?

  • mail is a mail client used to compose and send messages.
  • It works by relying on a local mail server (like Postfix or Sendmail) to handle email delivery.
  • Usage:
    • Utilizes the local MTA (Mail Transfer Agent) to send emails.
    • Does not require additional SMTP configuration if a local MTA is operational.

Advantages of mail:

  • Simple to use if a local MTA is already running.
  • No separate SMTP configuration needed.
  • Supports attachments and basic mail headers.

Disadvantages of mail:

  • Requires a local MTA (e.g., Postfix) to work.
  • Less flexible for using external SMTP servers.

2. What is msmtp?

  • msmtp is a standalone SMTP client that communicates directly with an SMTP server.
  • It is not a full-fledged mail client but a tool for sending emails via SMTP.
  • Usage:
    • No local mail server installation is required.
    • Ideal for scenarios using external SMTP servers (e.g., Gmail, Office365).

Advantages of msmtp:

  • Direct communication with external SMTP servers.
  • Perfect for scripts or automation.
  • Works without a local MTA.

Disadvantages of msmtp:

  • No functionality to read emails (only sending).
  • Requires a separate configuration file (~/.msmtprc) for SMTP settings.

Summary: Key Differences

Feature mail msmtp
Function Mail client using a local MTA SMTP client sending directly to servers
Local MTA required Yes No
SMTP support Via local MTA Direct
Flexibility Less flexible, meant for local servers Highly flexible, for external servers
Ease of use Simple if MTA is running Needs its own configuration
Email reading Yes No

When to use each?

  • Use mail:
    If you have a local mail server like Postfix installed and want to send emails through it. It's straightforward and requires no additional configuration.

  • Use msmtp:
    If you do not have a local mail server or if you want to send emails through an external SMTP service (e.g., Gmail, Office365). Ideal for scripts, automation, or minimal setups.