Page 1 of 1

TLS Connection can't be established (not gmail)

Posted: Fri Mar 07, 2008 7:44 am
by airsoft
i'm having problems connecting to my an SMTP Server using TLS:

this is my code:

Code: Select all

 
require_once "Swift/lib/Swift.php";
require_once "Swift/lib/Swift/Connection/SMTP.php";
 
$log = Swift_LogContainer::getLog();
$log->setLogLevel(Swift_Log::LOG_EVERYTHING);
$log->setMaxSize(200);
 
try {
        $smtp = new Swift_Connection_SMTP("smtp.unibe.ch", 587, Swift_Connection_SMTP::ENC_TLS);
        $smtp->setUsername("user");
        $smtp->setpassword("pass");
 
        $swift = new Swift($smtp);
 
        $message = new Swift_Message("test", "Test");
 
        $swift->send($message, "rcpt@mail.com", "sender@mail.com");
} catch (Swift_ConnectionException $e) {
        echo "There was a problem communicating with SMTP: " . $e->getMessage();
} catch (Swift_Message_MimeException $e) {
        echo "There was an unexpected problem building the email:" . $e->getMessage();
}
 
echo $log->dump(true);
 
This is the output of the script (with logging):

Code: Select all

 
There was a problem communicating with SMTP: The SMTP connection failed to start [tls://smtp.unibe.ch:587]: fsockopen returned Error Number 0 and Error String ''
Log Information
 
++ Log level changed to 4
++ Forcing ESMTP mode.  HELO is EHLO.
++ Forcing ESMTP mode.  HELO is EHLO.
++ Trying to connect...
++ Trying to connect to SMTP server at 'tls://smtp.unibe.ch:587
!! The SMTP connection failed to start [tls://smtp.unibe.ch:587]: fsockopen returned Error Number 0 and Error String ''
 
++ Log level changed to 4 ++ Forcing ESMTP mode. HELO is EHLO. ++ Forcing ESMTP mode. HELO is EHLO. ++ Trying to connect... ++ Trying to connect to SMTP server at 'tls://smtp.unibe.ch:587 !! The SMTP connection failed to start [tls://smtp.unibe.ch:587]: fsockopen returned Error Number 0 and Error String ''
 
the port is likely to be correct (can connect to it with telnet)

phpinfo shows that php is compiled with OpenSSL 0.9.8g

furthermore it is possible for me to connect to that server via TLS with the following command from
the shell of the same machine as the script above is running on:

Code: Select all

 
openssl s_client -starttls smtp -crlf -connect smtp.unibe.ch:25
 
Can somebody give me a hint to what i'm doing wrong?

Thanks in advance,

Gabe

Re: TLS Connection can't be established (not gmail)

Posted: Tue Apr 29, 2008 11:36 am
by peterzog
I am having the same exact problem. Did you find a solution?

Re: TLS Connection can't be established (not gmail)

Posted: Tue Apr 29, 2008 12:23 pm
by nalberg
My code is identical to yours and getting same error. I am able to use the test files - Smoke/TestConfiguration and send the test mails successfully to gmail on port 465. But putting in our mail.actifi.com server and login/port gives me the same error you are getting.

Re: TLS Connection can't be established (not gmail)

Posted: Tue Apr 29, 2008 8:31 pm
by Chris Corbyn
It sounds as though this server doesn't take connections with TLS at connection-time, but actually requires STARTTLS. Swift version 3 does not support STARTTLS since it was not possible at the time due to PHP limitations. There's a subtle difference between establishing a connection using TLS and using STARTTLS within a connection.

With the former Swift simply initiates the connection with TLS enabled.
With STARTTLS the client (Swift) has to connection unencrypted and then "switch" to TLS whilst remaining connected. This switching wasn't possible to do when I wrote version 3.

Re: TLS Connection can't be established (not gmail)

Posted: Thu Jan 22, 2009 3:06 am
by tronics
Ok, thanks.

Does this work now with version 4 beta?
Download here: viewtopic.php?f=52&t=93049

Thanks.

Re: TLS Connection can't be established (not gmail)

Posted: Thu Jan 22, 2009 6:05 pm
by Chris Corbyn
STARTTLS is not supported, even in the beta. In theory it can be but I need to make few changes for it to work so it will have to wait for now I'm afraid. When I wrote the current version it was impossible to do with PHP, but now the required functions exist should I choose to do this :)

Re: TLS Connection can't be established (not gmail)

Posted: Sat May 22, 2010 6:22 pm
by JGarrido
Chris Corbyn wrote:STARTTLS is not supported, even in the beta. In theory it can be but I need to make few changes for it to work so it will have to wait for now I'm afraid. When I wrote the current version it was impossible to do with PHP, but now the required functions exist should I choose to do this :)
Please 'choose to do this'!