Command Line Mail setup for OpenPlotter2. We use this to send an email triggered by the OpenCPN plugin, Watchdog.
OpenCPN Watchdog plugin (command function) can execute a command to send out an email, we use this for remote monitoring by Gmail.
Using SSMTP on openplotter2 to send email, well SSMTP does not seem to work any longer, try as I did, it didnt connect with gmail.
Eventually I found msmtp as an alternative to SSMPT and I was able to get it up an running in no time and had OpenCPN Watchdog emailing me with alarms.
First thing I did was open a Gmail account, I use a Gmail account specially for the boat because I needed to change one of the the security settings to be less secure during login. DO NOT use existing accounts or usual passwords because they can be exposed.
Open a new Gmail account and enable:
https://www.google.com/settings/security/lesssecureapps
1. Enabling less secure apps to access Gmail
2. Open your Google Admin console (admin.google.com).
3. Click Security > Basic settings .
4. Under Less secure apps, select Go to settings for less secure apps .
5. In the subwindow, select the Enforce access to less secure apps for all users radio button.
6. Click the Save button.
You can install the msmtp package with:
$sudo apt-get install msmtp msmtp-mta
The configuration file is located here : /etc/msmtprc
Strangely enough, it is empty with no clues, which is different from the old ssmtp.conf file.
However, there is a description with details if you use the man $man msmtp, or just copy and paste the contents I have supplied changing the necessary acount details.
For gmail accounts, these are the specific elements you should put into /etc/msmtprc:
$sudo nano /etc/msmtprc
defaults
auth on
tls on
# following is different from ssmtp:
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# user specific log location, otherwise use /var/log/msmtp.log, however,
# this will create an access violation if you are user pi, and have not changes the access rights
logfile ~/.msmtp.log
# Gmail specifics, you shouldnt need to change these
account gmail
host smtp.gmail.com
port 587
# You need to change these
from your-vessel-gmail-account_name@gmail.com
user your-vessel-gmail-account_name@gmail.com
password your-vessel-gmail-account-password
# Default
account default : gmail
Save the file close nano and exit.
You can test if this now works with:
$echo 'your test message' | msmtp destination-email-address@xxxxxxx.com
I have not yet found a way to set the subject, there is no -s flag as with ssmpt.
However, if you also install mailutils:
$sudo apt-get install mailutils
Then these should work:
$echo 'message' | mail -s "Hello" destination-email-address@xxxxxxx.com
$echo 'message' | sendmail destination-email-address@xxxxxx.com
You can use both mailutils and mpack with msmtp just as you did with ssmtp.
So any scripts that you have used before with ssmtp, mailutils or mpack should work just the same using msmtp.
Setting up the command script file to use in OpenCPN plugin, Watchdog.
You can have Watchdog execute a computer command. We wanted Watchdog to send us an email if our boat moves or the NMEA data stops. We stored the command to email a boat moving alarm in a shell file called: AnchorAlarmEmail.sh and for the loss of NMEA data: NMEA_Data_Missing.sh
First up create a new directory called bin in /home/pi
$mkdir bin
Reboot the computer, the bin file will be seen on reboot.
After creating the files with nano $sudo nano AnchorAlarmEmail.sh and $sudo nano NMEA_Data_Missing.sh
Save them to the created /home/pi/bin directory I changed the permissions of the file to make them executable.
$sudo chmod 755 AnchorAlarmEmail.sh
$sudo chmod 755 NMEA_Data_Missing.sh
As an example of the file, here is the format of the NMEA data loss script file NMEA_Data_Missing.sh:
echo "GPS NMEA Data Loss" | mail -s "Danger Will Robertson" destination-email-address@xxxxxxx.com
Or for the Anchor watch script file AnchorAlarmEmail.sh
echo "Boat appears to be on the move. Best regards, the Watchdog " | mail -s "ON THE MOVE" destination-email-address@xxxxxxx.com
Before running the test to check if the shell script works, shutdown and reboot OpenPlotter
Then test the shell file is going to work. After reboot open a terminal window and type in AnchorAlarmEmail.sh or NMEA_Data_Missing.sh
If these files are working, you receive an email or two, then you can go ahead and configure WatchDog to select these files as a command to execute.