How to Send Mails With Attachments Using mailx Command?

Introduction

Before we start talking about how to send mails with attachments using mailx command, let's briefly understand-What is Mailx ?

The mailx command is a widely-used utility in Unix-like systems that allows you to send emails directly from the command line. While mailx supports plain text emails, it also enables you to attach files to your messages. Users can create, send, and receive emails with attachments by using this command from the command line.

This tutorial will walk you through the process of using the mailx command to send emails with attachments, enabling you to share files conveniently. We will also address a few FAQs on how to send mails with attachments using mailx command.

How Do I Use The mailx Command To Send Mail With Attachments?

Emails can be sent from the terminal using the "mailx" command. It can be used to send emails with attachments and emails in plain text.

Prerequisite

Use the following instructions to install the "mailx" command line support for Linux:

sudo apt install mailutils  # Debian/Ubuntu/Linux-Mint
sudo yum install mailx      # CentOS/Redhat
sudo dnf install mailx      # Fedora/RHEL

Syntax With Explanation

The following gives the "mailx" command's basic syntax for sending emails with attachments:

echo "This is the body of the email" | mailx -a /path/to/attachment.pdf -s "Subject of the email" recipient@example.com
  • "echo" command is used to provide the email's body.
  • "-a" option is used to attach a file to the email.
  • "-s" option specifies the subject of the email.
  • "recipient@example.com" is the recipient's email address.

Example 1: Send an Email With Attachments

Use the "-a" option and the path to the file you want to attach to send an email with an attachment. The default mail that the user can choose during the "mailx" command installation is the sender mail. For instance, the following is how "roger@gmail.com" will receive the "file.txt" and "file2.txt" attachments:

echo "Hello Sir, Always Stay Happy" | mailx -A file.txt file2.txt -s "Acknowledgment" roger@gmail.com

The output indicates that a certain address has received both the "file.txt" and "file2.txt" attachments.

Example 2: Send an Email Indicating the Sender Address

When sending an attachment, users can use the "-r" option to indicate the sender address. In this instance, "johnson@gmail.com" will attach the "file.txt" and send it to "roger@gmail.com":

echo "Have a Nice Day" | mailx -A file.txt -s "Wish" -r johnson@gmail.com roger@gmail.com

The output reveals that "roger@gmail.com" received both "file.txt" attachments.

Example 3: Send an Email Mentioning the CC and BCC Recipient

Using the "c" and "b" options, you can specify a CC and BCC recipient, respectively. In this instance, "johnson@gmail.com" sends "file.txt" as an attachment while keeping "roger@gmail.com" and "hr@gmail.com" in the CC and BCC fields, respectively:

echo "Hello Sir, Great Wishes" | mailx -s "Announcement" -A file.txt johnson@gmail.com c roger@gmail.com b hr@gmail.com

The above-mentioned addresses have received the "file.txt" attachment.

FAQs on Using the mailx Command to Send Mail with Attachments

How do I use mailx to send a basic email without attachments? 

To send a basic email without attachments using mailx, execute the command followed by the recipient's email address. Then, press enter and type the subject of the email. After pressing enter once more, you can compose the message. To send it, press Ctrl + D or enter . on a new line.

What options are available for attaching files with mailx?

To attach files with mailx, use the -a option followed by the file path(s) you want to attach. You can specify multiple files by separating their paths with commas.

How do I send an email with attachments using mailx? 

Compose your email as usual, specifying the recipients, subject, and message body. Then, use the -a option to attach one or more files to the email.

Which file types can be attached with mailx?

mailx can attach any type of file. It treats attachments as binary data and does not differentiate file types during the attachment process.

Is there a size limit for attachments with mailx? 

The size limit for attachments with mailx depends on the email server's and recipient's email service's limits. Some servers may have restrictions on the size of attachments, so it is advisable to check with your email service provider or system administrator.

Can I send multiple attachments with different names using mailx? 

Yes, you can send multiple attachments with different names using mailx. Simply include the -a option followed by the file paths separated by commas.

Can I send both attachments and inline text using mailx? 

Yes, you can compose an email with both attachments and inline text using mailx. Simply include the attachment files with the -a option, and then compose the rest of the email using the regular mailx syntax.

Can mailx handle multiple recipients? 

Yes, mailx can handle multiple recipients. Simply separate the email addresses with commas when specifying the recipients.

Conclusion

The "mailx" function is available on Linux and allows users to send and receive email messages together with attachments. To send an email with attachments, use the syntax "echo "body" | mailx -a attachment.pdf -s "Subject" recipient@example.com".

This tutorial shows how to use the "mailx" command to send emails with attachments.

If you have any queries, please leave a comment below, and we’ll be happy to respond to them.