Pergunta

Estou tentando enviar e -mail através do Gmail usando PHPMAILER_V5.1.

Obtendo o seguinte erro,

SMTP -> ERRO: Falha ao se conectar ao servidor: Não foi possível encontrar o Socket Transport "SSL" - você esqueceu de ativá -lo quando configurou o PHP? (41961176) Erro SMTP: não foi possível conectar ao host SMTP.

A seguir, é apresentado o código que veio com o download do phpmailer, acabei de modificar os campos necessários,

<?php
    require_once('../class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

    $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

    $mail->IsSMTP(); // telling the class to use SMTP

    try {
      $mail->Host       = "mail.yourdomain.com"; // SMTP server
      $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
      $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
      $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
      $mail->Username   = "santosh1984naidu@gmail.com";  // GMAIL username
      $mail->Password   = "********";            // GMAIL password
      $mail->AddReplyTo('santosh1984naidu@gmail.com', 'First Last');
      $mail->AddAddress('santosh1984naidu@gmail.com', 'John Doe');
      $mail->SetFrom('santosh1984naidu@gmail.com', 'First Last');
      $mail->AddReplyTo('santosh1984naidu@gmail.com', 'First Last');
      $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
      $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
      $mail->MsgHTML(file_get_contents('contents.html'));
      $mail->AddAttachment('images/phpmailer.gif');      // attachment
      $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
      $mail->Send();
      echo "Message Sent OK</p>\n";
    } catch (phpmailerException $e) {
      echo $e->errorMessage(); //Pretty error messages from PHPMailer
    } catch (Exception $e) {
      echo $e->getMessage(); //Boring error messages from anything else!
    }
    ?>
Foi útil?

Solução

Com base no erro, parece que o SSL não está ativado no PHP. No topo da minha cabeça, acredito que você precisa de descomentar

Extension = php_openssl.dll

no seu arquivo php.ini

A seguir, deve ajudá -lo a instalar o SSL se já estiver configurado no seu sistema:

http://us2.php.net/manual/en/openssl.installation.php

Outras dicas

Bem, a mensagem de erro diz tudo:

Incapaz de encontrar o soquete "SSL" - você esqueceu de ativá -lo quando configurou o PHP?

Isso significa que a versão PHP não está equipada com as bibliotecas necessárias para se comunicar com o servidor de email (ou qualquer outro servidor para esse assunto) através do SSL.

Se você não tiver acesso root ao seu servidor, esse provavelmente é um problema para o administrador / provedor do servidor.

A partir de um discussão semelhante em um fórum, uma solução possível que parece bastante realista:

Meu palpite é que o MOD_SSL não está instalado para o Apache ou está instalado, mas as linhas de configuração para MOD_SSL são comentadas em httpd.conf (como estava no SUSE9 para mim). O APXS apenas ativará as funções SSL no PHP se o MOD_SSL estiver em funcionamento e em execução

Portanto, verifique o mod_ssl está disponível + ativado no apache e tente recompilar o php com

./configure ---with-apxs2 =/usr/sbin/apxs ---with-mysql --enable-ssl

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top