send mail from linux terminal in one line
Categories:
Sending Emails from the Linux Terminal in a Single Line

Learn how to quickly send emails directly from your Linux command line using various tools and techniques, perfect for scripting and quick notifications.
Sending emails directly from the Linux terminal can be incredibly useful for system administrators, developers, and anyone looking to automate notifications or send quick messages without a full-fledged email client. This article explores several one-liner commands and methods to achieve this, covering common scenarios and tools available on most Linux distributions.
The mail Command (mailx/mailutils)
The mail command, often provided by mailx or mailutils packages, is a classic and versatile tool for sending emails from the command line. It's simple to use for basic text emails and supports more advanced features like attachments and custom headers. Ensure you have a Mail Transfer Agent (MTA) like Postfix or Sendmail configured on your system for mail to function correctly.
echo "This is the email body." | mail -s "Subject of the Email" recipient@example.com
Sending a basic email with a subject and body.
mail -s "Important Update" -a /path/to/document.pdf recipient@example.com < /path/to/body.txt
Sending an email with an attachment and a body from a file.
mail to work, your system needs a properly configured MTA (e.g., Postfix, Sendmail). If you're on a fresh install, you might need to install and configure one first. For example, on Debian/Ubuntu: sudo apt install mailutils.Using sendmail Directly
The sendmail command is the underlying MTA often used by mail. While mail provides a user-friendly wrapper, you can interact with sendmail directly for more control, though it's slightly more verbose. This method is particularly useful when you need to specify headers manually or integrate with existing scripts that expect sendmail's input format.
printf "Subject: My Direct Email\nFrom: sender@example.com\nTo: recipient@example.com\n\nThis is the body of my direct email." | sendmail -t
Sending an email using sendmail with manually specified headers.
sendmail directly, ensure your headers are correctly formatted (e.g., Subject:, From:, To: followed by a blank line before the body). Incorrect formatting can lead to delivery issues.Leveraging mutt for Advanced Features
mutt is a powerful, text-based email client that can also be used for sending emails from the command line. It excels in handling attachments, different content types, and more complex email structures, making it a favorite for scripting when mail isn't sufficient. It's often not installed by default but is available in most package repositories.
echo "Hello from mutt!" | mutt -s "Mutt Test Email" -a /path/to/image.jpg -- recipient@example.com
Sending an email with an attachment using mutt.
mutt -s "HTML Email" -e 'set content_type="text/html"' recipient@example.com < /path/to/html_body.html
Sending an HTML email using mutt.
flowchart TD
A[Start: Script/User Initiates Email] --> B{Choose Tool: mail, sendmail, mutt?}
B -->|Basic Text/Subject| C[Use `mail` command]
B -->|Direct MTA Control/Headers| D[Use `sendmail` command]
B -->|Attachments/HTML/Advanced| E[Use `mutt` command]
C --> F[Pipe Body to `mail`]
D --> G[Pipe Formatted Headers/Body to `sendmail -t`]
E --> H[Pipe Body to `mutt` with options]
F --> I[MTA Processes Email]
G --> I
H --> I
I --> J[Email Delivered to Recipient]
J --> K[End]Decision flow for choosing the right command-line email tool.