SendEmail is a lightweight, command-line-based SMTP (Simple Mail Transfer Protocol) email agent for sending emails from a Linux system. It is a useful tool for scripting, system monitoring, and automating various tasks that require email notifications. In this article, we will provide a comprehensive guide on how to install and use SendEmail in Linux.
You can also learn about more methods about sending emails directly from the Linux terminal. 5 Methods to Send Email from Linux Terminal
Prerequisites
- A Linux system with root or sudo access.
- A functioning internet connection.
- Access to an SMTP server or an email account (Gmail, Yahoo, etc.) with SMTP settings.
Installing SendEmail on Linux
SendEmail is available in most Linux distributions’ package repositories. Depending on your distribution, you can install it using the appropriate package manager.
- For Debian/Ubuntu-based systems, run the following commands:
sudo apt-get update
sudo apt-get install sendemail
- For CentOS/RHEL-based systems, first enable the EPEL repository:
sudo yum install epel-release
Then, install SendEmail:
sudo yum install sendemail
- For Fedora:
sudo dnf install sendemail
- For Arch Linux:
sudo pacman -S sendemail
Basic usage of SendEmail
To send an email using SendEmail, you will need to provide the following parameters:
- SMTP server address and port
- Sender’s email address
- Recipient’s email address
- Subject and message body
Here is an example of a basic email command:
sendemail -f [email protected] -t [email protected] -u "Subject" -m "Message body" -s smtp.example.com:25
Sending emails with attachments
SendEmail allows you to send attachments along with your email. To do so, use the -a flag followed by the file path. You can attach multiple files by using the -a flag multiple times:
sendemail -f [email protected] -t [email protected] -u "Subject" -m "Message body" -s smtp.example.com:25 -a /path/to/file1 /path/to/file2
Using Gmail or other email providers
If you don’t have access to an SMTP server, you can use your Gmail or other email providers’ SMTP settings. In this example, we will use Gmail.
First, you need to enable “Less secure apps” access in your Gmail account settings. Then, use the following command to send an email using your Gmail account:
sendemail -f [email protected] -t [email protected] -u "Subject" -m "Message body" -s smtp.gmail.com:587 -xu [email protected] -xp your_password -o tls=yes
Replace “[email protected]” with your actual Gmail address and “your_password” with your Gmail password.
Note: Storing your email credentials in plain text or using them directly in a script is not recommended. Always store sensitive information securely.
Troubleshooting
- If you encounter issues sending emails, check the logs and error messages for more information. SendEmail provides verbose logging with the -v flag:
sendemail -f [email protected] -t [email protected] -u "Subject" -m "Message body" -s smtp.example.com:25 -v
- Ensure your SMTP server settings are correct, and the server is accessible from your system.
- Check if your email provider has specific requirements for sending emails, such as enabling “Less secure apps” access, using two-factor authentication, or generating app-specific passwords.
- If you are using Gmail or another email provider that supports two-factor authentication (2FA), it is recommended to generate an app-specific password instead of using your main account password. Follow your email provider’s instructions to generate an app-specific password and use it in the SendEmail command.
- Some email providers may block or filter emails sent via SendEmail, especially if they contain links or attachments. Check the recipient’s spam folder or try sending a test email without attachments or links to confirm the issue.
- If you are using a firewall, ensure that it allows outgoing connections on the SMTP port you are using (25, 465, or 587).
- If you still encounter issues, consider using an alternative method for sending emails, such as the mail command or a third-party email client.
Conclusion
SendEmail is a versatile and lightweight command-line tool for sending emails from a Linux system. It is especially useful for system administrators and developers who need to automate email notifications for various tasks. By following this guide, you should now be able to install and use SendEmail to send emails with or without attachments, using your SMTP server or an email provider like Gmail.