Mail Servers

Warning!

This is an Advanced subject, that is not necessary for running the grib plugin. Do not try these setups unless you are familiar with your operating system, comfortable with handling the command line interface and editing configuration files. Do not expect these instructions to work without some customization.

This page contains detailed instructions on how to set up mailservers to automatically send grib request mails to Sail Docs. “Ptizef” & “rgleason” have compiled the instructions for Windows/Thunderbird “Ptizef” has compiled the instructions for Linux/SSMTP. “Cagney” has compiled the instructions for Linux/Exim4. “CarCode” has compiled the instructions for Mac OS X/PostFix .

Windows MAPI Mail Server Setup

The plugin’s email request depends on the user’s selection of the default MAPI email program which is dependent on the Operating System conventions. Linux, Windows and Mac are all different. If the plugin does not find a default MAPI program, an appropriate message will show in the plugin menu:

 Request can't be sent. Please verify your email system parameters.
 You should also have a look at your log file.
 Save or Cancel to finish...

and there will be an error message in the opencpn.log similar to:

 10:55:47 PM: MAIL Error: Failed to logon to MAPI using a shared session, Error:3

To fix this problem use a google search, and find links such as Fix CLS Send, MAPI or Runtime Error in Email

Windows 10 or 8.1 and Thunderbird

For example, if you use Thunderbird exclusively with Win10 or Win8.1, this should fix the problem

 Start > Control Panel > Default Programs > Set your Default Programs,  Then pick Thunderbird.

Windows Vista or XP and Thunderbird

  • Outside OpenCPN there is nothing more to do except to ensure that there is a mail system (mine is thunderbird) correctly configured and set as “main” on the device. also verify if the mapi32.dll is present in c:/windows/system32 (or equivalent for 64b) (otherwise an error message will be the result).

  • Inside OpenCPN, there is nothing to do; the sender mail address can be entered, but will not be used. Just don’t forget to enter the zyGRIB login and password.

When clicking on “send” button : if the “main” mail system is not open, OpenCPN opens it and the waiting messages are received. remark : if there are many waiting messages, it could take a while. That is why it would be better to create a specific address for this purpose. Then a new mail page is opened with all mail elements already written thus ready to be sent.

Linux

Using SSMTP

How to install and configure sSMTP:

  • 1) Install the ssmtp package. If another MTA is already installed, you may be asked to uninstall it before installing ssmtp.

Once it’s done you can test it by typing this command: “whereis sendmail”

The answer should be something like “/usr/sbin/sendmail”.

Use that answer in the next command: “ls -la /usr/sbin/sendmail”

If everything is OK you should get this answer: “/usr/sbin/sendmail → ssmtp” showing that Sendmail function is now connected to ssmtp.

  • 2) Now there are two files to set:

the first file : /etc/ssmtp/ssmtp.conf ( with root rights )

The typical setting should be: root=postmaster AuthUser=yourlogin to your ISP access AuthPass=yourpasseword to your ISP access mailhub=yourISPserveurname.yourdomain (for example smtp.orange.fr) rewriteDomain=yourdomain FromLineOverride=YES hostname= the full host-name ( normally automatically entered, but if not you can type the command : “hostname” to get it)

For ISP requiring a TLS connection , it could be necessary to add the line UseTLS=YES or UseSTARTTLS=YES

the second file : /etc/ssmtp/revaliases (with root rights)

Enter this line. root:yourlogin@yourdomain:yourISPserveurname.yourdomain

the default port was 25 but now many ISP refuse it and use 587. If you have a mail system, you will find the right value in it.sudo dpkg-reconfigure exim4-config Sendmail/Postfix install for Mac - Inside OpenCPN :You must enter the sender address : your entire mail address, the one you will use to send mails and receive answers

When you click on the “send” button, the mail is directly sent. You can find the log here : /var/log/mail.log

Using Exim4

First install Exim4 $sudo apt-get install exim4 then configure it (again). $sudo dpkg-reconfigure exim4-config This is a very simple setup where exim is just used to forward mail to the ISP:s smtp server. Local system mail is also available.

image

It’s important to use the choice above.

image

I just use “localhost”.

image

We have no incoming connections.

image

We are not using this.

image

We are not using this.

image

This is important. It must point to your Internet Service Providers SMTP server.

image

Your choice!

image

RTFM and make up your mind. Not a big deal for this simple setup.

image

RTFM.

image

Your Choice, but no point in splitting this simple setup.

Edit /etc/exim4/passwd.client so it contains your username and password to your ISP:s mail server.

# password file used when the local exim is authenticating to a remote_PARATABLE_INS_# host as a client._PARATABLE_INS_#PARATABLE_INS_# *see exim4_passwd_client(5) for more documentation*_PARATABLE_INSPARATABLE_INS_# Example:_PARATABLE_INS## target.mail.server.example:login:password_PARATABLE_INS_# for OpenCPN you can use *:login:password_PARATABLE_INS_*:fakexyz123:madeupXYZ123

(Re)start Exim4 $ /etc/init.d/exim4 \{start|stop|restart|reload|status|what|force-stop} Start testing

Mac OS

Using Sendmail/Postfix

It is not so easy to install this on a Mac since you will need some experience with terminal using. The example below uses an googlemail account and nano as editor:

Step 1 Type in terminal these 6 lines one after another with return: sudo mkdir -p /Library/Server/Mail/Data/spool

sudo gzip /usr/share/man/man1/\{postalias.1,postcat.1,postconf.1,postdrop.1,postf ix.1,postkick.1,postlock.1,postlog.1,postmap.1,postmulti.1,postqueue.1,postsuper.1,sendmail.1}

sudo gzip /usr/share/man/man5/\{access.5,aliases.5,bounce.5,canonical.5,cidr_table.5,generic.5,header_checks.5,ldap_table.5,master.5,mysql_table.5,nisplus_table.5,pcre_table.5,pgsql_table.5,postconf.5,postfix-wrapper.5,regexp_table.5,relocated.5,tcp_table.5,transport.5,virtual.5}

sudo gzip /usr/share/man/man8/\{anvil.8,bounce.8,cleanup.8,discard.8,error.8,flush.8,local.8,master.8,oqmgr.8,pickup.8,pipe.8,proxymap.8,qmgr.8,qmqpd.8,scache.8,showq.8,smtp.8,smtpd.8,spawn.8,tlsmgr.8,trivial-rewrite.8,verify.8,virtual.8}

sudo /usr/sbin/postfix set-permissions

sudo chmod 700 /Library/Server/Mail/Data/mta

Step 2 Type in terminal another command to start the nano editor with this file: sudo nano /etc/postfix/sasl_passwd

Type into the nano editor: smtp.googlemail.com:587 YourAccountname(the at symbol)googlemail.com:YourPassword

Substitute YourAccountname and YourPassword with your data. Save the file in nano with Ctrl-O and exit with Ctrl-X.

Step 3 Publicate the new file in terminal with this command: sudo postmap /etc/postfix/sasl_passwd

Step 4 You have to edit the main config file and add at the end the following lines with this command in Terminal: sudo nano /etc/postfix/main.cf

This to add: # Minimum Postfix-specific configurations. mydomain_fallback = localhost mail_owner = _postfix setgid_group = _postdrop relayhost=smtp.googlemail.com:587

Enable SASL authentication in the Postfix SMTP client.

smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=

Enable Transport Layer Security (TLS), i.e. SSL.

smtp_use_tls=yes smtp_tls_security_level=encrypt tls_random_source=dev:/dev/urandom

Save the file and exit nano as in step 2.

Step 5 Now you can start postfix in terminal with: sudo postfix start

If an error occurs correct main.cf and start again with: sudo postfix reload

Step 6 Now you can test your work in terminal with: date | mail -s test YourAccountname(the at symbol)googlemail.com

Done. Supplemental If you want to have started sendmail/postfix each time you start you start your machine you can add these lines to the launch daemon:

<key>RunAtLoad</key>
<true/>

Do this with this command in terminal: sudo nano /System/Library/LaunchDaemons/org.postfix.master.plist

After that this file should look like this:

<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version=“1.0”>
<dict>
<key>Label«/key>
<string>org.postfix.master</string>
<key>Program</key>
<string>/usr/libexec/postfix/master</string>
<key>ProgramArguments</key>
<array>
<string>master</string>
<string>-e</string>
<string>60</string>
</array>
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
<key>AbandonProcessGroup</key>
<true/>
<key>OnDemand/lt;/key>
<true/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Instead of googlemail in this example you may use any other mail server.