Prerequisites
Before we get started, you will need the following:
- An Amazon EC2 instance running Linux
- An AWS account with SES enabled
- A domain name or email address that you want to use as the sender address
Step 1: Install Postfix
Postfix is an open-source mail transfer agent that can be used to send emails from a Linux machine. To install Postfix on your Amazon EC2 instance, run the following command:
sudo yum install postfix
After the installation is complete, edit the Postfix configuration file /etc/postfix/main.cf
and add the following lines at the end of the file:
relayhost = email-smtp.us-west-2.amazonaws.com:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
Replace email-smtp.us-west-2.amazonaws.com
with the SMTP endpoint of the AWS region you are using. If you are using a different email service provider, replace this with the appropriate SMTP server address.
Step 2: Configure SASL Authentication
Next, you need to configure SASL authentication to allow Postfix to authenticate with SES. Create a new file /etc/postfix/sasl_passwd
and add the following line:
email-smtp.us-west-2.amazonaws.com:587 SES_SMTP_USERNAME:SES_SMTP_PASSWORD
Replace SES_SMTP_USERNAME
and SES_SMTP_PASSWORD
with your SES SMTP user name and password, respectively. Save the file and run the following commands to create a hash database for Postfix to read:
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
Step 3: Restart Postfix
After completing the previous steps, you need to restart Postfix to apply the changes you made. Run the following command to restart the Postfix service:
sudo service postfix restart
Step 4: Test Email Sending
To test that your Amazon EC2 instance can send emails, you can use the mail
command. Run the following command to send a test email:
echo "This is a test email" | mail -s "Test Email" recipient@example.com
Replace recipient@example.com
with the email address you want to send the test email to. If everything is configured correctly, you should receive the test email in a few minutes.