Hi, in this blog post I will show you how I configured Swaks for sending emails using SMTP using my custom SMTP server.
First I ran the following command to install swaks:
sudo apt-get install swaks
With swaks installed, I could start building a test command just to
see if this would actually work. I started with the below command:
swaks --to email@example.com --from firstname.lastname@example.org --auth --email@example.com --firstname.lastname@example.org --server smtp.example.com -tls
This gave me an error along the lines of “Could not authenticate – connection refused” after talking to the people hosting my SMTP server, I found out that I needed to make sure that I was using port 587 and not the default port of 465.
So I made sure that my command explicitly used that port by adding it to the server parameter and managed to get an email to successfully send. You can see the code I used below:
swaks --to email@example.com --from firstname.lastname@example.org --auth --email@example.com --firstname.lastname@example.org --server smtp.example.com:587 -tls
I wanted to use this in a script so that I could launch the script and an email would get sent. I also wanted to change what would get sent in the actual email since currently, it was just using the default values.
After 5 or so minutes of cobbling a script together, I came up with what you can see below:
#!/bin/bash hostname=$(hostname) uptime=$(uptime) swaks --to email@example.com \ --firstname.lastname@example.org \ --auth \ --email@example.com \ --auth-password=password-for-source-email \ --server smtp.example.com:587 \ --body "$hostname - uptime is $uptime" \ --header "Subject: $hostname is still up" \ -tls \
Now I can send this email whenever I want, I even created a CRON job to send the email every hour. Enjoy!