Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Net::SMTP::SSL on Windows 8

by DanEllison (Beadle)
on Nov 20, 2013 at 15:12 UTC ( #1063541=perlquestion: print w/replies, xml ) Need Help??
DanEllison has asked for the wisdom of the Perl Monks concerning the following question:

I currently use Net::SMTP::SSL to send e-mails out through my GoDaddy website:
my $smtp = Net::SMTP::SSL->new('', Port => 465 +, Debug => 1, Hello => '') or die $!;
This has worked perfectly on Windows XP and Windows 7. However, I've moved to a new Windows 8 computer and it has quit working. The line above simply dies with "Bad file descriptor". Debug => 1 does not give me any details. Running it in the debugger, I was able to determine another message:
IO::Socket::IP configuration failed SSL connect attempt failed with un +known error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:c +ertificate verify failed
Can anyone help me resolve this issue?

Replies are listed 'Best First'.
Re: Net::SMTP::SSL on Windows 8
by hippo (Abbot) on Nov 20, 2013 at 16:23 UTC

    The error (from the debugger) seems pretty explicit - your process has failed to verify the certificate of the server. This may be due to a number of reasons, but my first guess would be that you do not have the correct Root CA cert (or intermediate cert) installed on your client machine, or at least not installed where your client code is looking for it. Find where that location is, see if the right root CA is there and if not, add it in. Hint: It might be Mozilla::CA that is missing or out of date.

    Good luck.

      I don't recall ever having to install any certificates before. Not even sure how.
Re: Net::SMTP::SSL on Windows 8
by taint (Chaplain) on Nov 20, 2013 at 16:25 UTC
    Greetings, DanEllison. If I had to guess. I'd say it didn't pass the Sniff Test.

    Judging from the informative debugger output. It seems fairly obvious; the certificate is bad -- has perhaps expired, isn't signed in a way IO::Socket::IP, or Net::SMTP::SSL considered acceptable (wildcard, self signed,...). Have you tried it with your Browser, or mail reader? What/How does the certificate read there? Any indications, as to the failure there (assuming they don't also reject the cert)?

    Just my initial thoughts, given the information you've provided.

    Best wishes.


    #!/usr/bin/perl -Tw
    use Perl::Always or die;
    my $perl_version = (5.12.5);
    print $perl_version;

      Yes, sure, the problem is obvious. The solution is what seems non-existent.

      I started with notes I found for sending e-mail out through gmail. godaddy works similarly. I didn't have to install any certificate before.

      The more I read, it may not be a difference in windows versions, but possibly a change in IO::Socket::SSL that may be requiring me to install a certificate that I hadn't before. But where? Which certificate? If I need to supply an option to IO::Socket::SSL to identify the certificate, how do I do that via Net::SMTP::SSL, since I don't work with IO::Socket::SSL directly?

        I have now confirmed it. I had IO::Socket::SSL version 1.953 installed. I re-installed version 1.76, and everything started working as before. So, what does the new version need?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1063541]
Approved by Corion
and one hand claps...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2018-05-21 01:46 GMT
Find Nodes?
    Voting Booth?