Development/Tinderbox/Setup

From The Document Foundation Wiki
Jump to: navigation, search

Setting up a tinderbox

Have a look at tb script description for general info on how to setup a tinderbox.

Sending mails from cygwin / Windows

As it turns out, it is not completely straightforward to setup cygwin to be able to send mail via SSL. You need Net::SSLeay and IO::Socket::SSL perl modules that are not available with cygwin, and also ssl certificates. The following worked for me to get it running.

  • Install gcc4 in cygwin (so that you can use CPAN to install Net::SSLeay)
    If you don't do this, cpan Net::SSLeay will complain that it has Unresolvable missing external dependency. This package requires a C compiler.
    • Start Cygwin's setup.exe
    • In the selection of packages, uncheck the 'Hide obsolete packages' option at the bottom
    • Search for 'gcc4' in the top left Search field
    • Select 'gcc4', and install it
    • Create symlinks for gcc4
      cd /usr/bin ; ln -s gcc.exe gcc-4 ; ln -s g++.exe g++-4
  • Install Net::SSLeay and IO::Socket::SSL
    If you don't do this, and you specify -o tls=yes to sendEmail, it will issue ERROR => No TLS support! SendEmail can't load required libraries. (try installing Net::SSLeay and IO::Socket::SSL)
    • cpan Net::SSLeay ; cpan IO::Socket::SSL
  • Install the SSL certificates
    If you don't do this, sendEmail will end up with ERROR => TLS setup failed: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    • cd /usr/ssl/certs
    • wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
    • perl.exe /usr/bin/c_rehash
  • Make sure you have the newest sendEmail
    If you don't do this, sendEmail will end up with invalid SSL_version specified at /usr/lib/perl5/site_perl/5.14/IO/Socket/SSL.pm line 418

Now you should be able to send mail from cygwin. To try it, do:

./sendEmail -f <from>@gmail.com -t <to>@gmail.com -u Test -m Works -o tls=yes -s smtp.gmail.com:587 -xu <from>@gmail.com -xp <password>

sendEmail should end up with Email was sent successfully!, and <to>@gmail.com should get a message with subject Test, and mail body Works.