Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
jhonpetter

[Resolvido] PHP - EMAIL - conexao tls

Recommended Posts

Ola, amigos estou tentando criar uma class mail com a qual se conecta com o servidor smtp.live.com porta 587 que usa criptografia em tls eo mesmo retorna o seguinte erro :

PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:

error:1408F10B:SSL routines:SSL3_GET_RECORD

ja revirei a net e nada, será que é algo sobre segurança no php.ini, alguem tiver uma ideia eu agradeço.

Segue código utilizado.


<?php
class MAIL
{
public $HOST = "localhost";
public $PORT = 25;

private $CONNECTION;
private $DEBUG = '';

private $ln = "\r\n";
function SETCONNECTION($host, $port)
{
$this->HOST = empty($host) ? $this->HOST : $host;
$this->PORT = empty($port) ? $this->PORT : $port;
$this->CONNECTION = @fsockopen($this->HOST, $this->PORT,$errno,$errstr,ini_get("default_socket_timeout"));
if(empty($this->CONNECTION)){echo "Falha na Conexao: $errno $errstr <br>";}else{echo "Conectado : ".fgets($this->CONNECTION, 515)."<br>";}
}
function LOGIN($user, $pass)
{
fputs($this->CONNECTION,"HELO ".$this->HOST. $this->ln);
fputs($this->CONNECTION,"STARTTLS" . $this->ln);
//-------------------------------ERRO-------------------------------------------------
stream_socket_enable_crypto($this->CONNECTION, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
//------------------------------------------------------------------------------------
fputs($this->CONNECTION,"AUTH LOGIN" . $this->ln);
$this->DEBUG .= fgets($this->CONNECTION, 515)."<br>";
fputs($this->CONNECTION, base64_encode($user) . $this->ln);
$this->DEBUG .= fgets($this->CONNECTION, 515)."<br>";
fputs($this->CONNECTION, base64_encode($pass) . $this->ln);
$this->DEBUG .= fgets($this->CONNECTION, 515)."<br>";
}
function SENDMAIL()
{
}
function DEBUG()
{
echo $this->DEBUG;
}
}
$test = new MAIL();
$test->SETCONNECTION("smtp.live.com", 587);
$test->LOGIN("seu_usuario@hotmail.com", "sua_senha");
$test->DEBUG();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido:

O problema era o seguinte quando envia o usuário e a senha, os servidores tls não permitem o pedido de resposta entre os dois o que acontecia aqui:

fputs($this->CONNECTION, base64_encode($user) . $this->ln);
$this->DEBUG .= fgets($this->CONNECTION, 515)."<br>";
fputs($this->CONNECTION, base64_encode($pass) . $this->ln);

Pois bem foi so retirar o pedido de resposta que ficou assim:

fputs($this->CONNECTION, base64_encode($user) . $this->ln);
fputs($this->CONNECTION, base64_encode($pass) . $this->ln);

Ai ficou tudo certo e o servidor aceitou o login segue:

Conectado : 220 BLU0-SMTP123.phx.gbl Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Sun, 11 Aug 2013 09:13:09 -0700 
250 BLU0-SMTP123.phx.gbl Hello [186.249.152.154]
220 2.0.0 SMTP server ready
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.7.0 Authentication succeeded

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×