While trying to send an email from CLI on a local server to an external email address, you can come across the error log below.
echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx -r "Test-Email <[email protected]>" -s "test cli email $(date)" -- [email protected]
To fix this, make sure you have the SMTP server address (either Gmail or your ISP) and also authentication to log in (Some ISP’s allow anonymous) then use the command below
echo "This is a test email on CLI initiated using mailx" | mailx -vvv -s "Test mail" -r "[email protected]" -S smtp="your smtp server address" [email protected]
USING GMAIL AS THE EMAIL SERVER
– Create a certificate directory then create new certificate and key databases
certutil -N -d ~/.certs
Download certificate from Gmail and import the cert file into the new database
echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/gmail.crt
certutil -A -n "Google Internet Authority" -t "C,," -d ~/.certs -i ~/.certs/gmail.crt
Add configurations into the mailx config file (/etc/mail.rc)
echo -e " body " | mailx -A gmail -s "Subject" [email protected]
I hope you found this blog post helpful. If you have any questions, please let me know in the comment session.