2012-06-26 22 views
5

Estoy usando SMTP para enviar correos electrónicos en mi proyecto CAKEPHP. Mi configuración de correo electrónico de la siguiente maneraCakePHP 2.0 Configuración SMTP en el correo electrónico no funciona

class EmailConfig { 

    public $Smtp = array(
     'transport' => 'Smtp', 
     'from' => array('[email protected]' => 'domainname.com'), 
     'host' => 'myhostingserver', 
     'port' => 2525, 
     'timeout' => 60, 
     'username' => '[email protected]', 
     'password' => 'secret', 
     'client' => null, 
     'log' => false 
    ); 

y mi código de la funcionalidad de correo de la siguiente manera

$email = new CakeEmail('Smtp'); 
    $result = $email->template('welcome_mail','default') 
         ->emailFormat('html') 
         ->to($to_email) 
         ->from('[email protected]') 
         ->subject('Welcome to my domain name') 
         ->viewVars($contents); 

    if($email ->send('Smtp')) 
    { 
     echo ('success'); 

    } 

Mientras que yo envío electrónico de su lanzamiento siguiente error de tiempo de espera SMTP. Los detalles de mi servidor SMTP son correctos, funciona bien en un servidor existente. No sé dónde estoy equivocado

Respuesta

6

Comprobar el tipo de cifrado (si es aplicable), por ejemplo, SSL o TLS

La URL de acogida deben ser algo como esto en tal caso

'host' => 'ssl://myhostingserver' 

o

'host' => 'tls://myhostingserver' 
1

Si su servidor SMTP tiene SSL, tiene que habilitar php_openssl en php.ini para usar este servicio. Puede utilizar este código para probar

if(!in_array('openssl',get_loaded_extensions())){ 
    die('you have to enable php_openssl in php.ini to use this service');  
} 
0

junto a lo que aquí ya se sugested aquí que el módulo debe ser cargado. descubrí que algunos servidores tienen algunos puertos bloqueados. Utilicé este script para probar algunos servidores:

<?php 

if(!in_array('openssl',get_loaded_extensions())){ 
    die('you have to enable php_openssl in php.ini to use this service');  
} else { 
    echo "php_openssl in php.ini is enabled <br />"; 
} 

// fill out here the smpt server that you want to use 
$host = 'ssl://smtp.gmail.com'; 
// add here the port that you use for for the smpt server 
$ports = array(80, 465); 

foreach ($ports as $port) 
{ 
    $connection = @fsockopen($host, $port); 
    if (is_resource($connection)) 
    { 
     echo $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.<br />' . "\n"; 
     fclose($connection); 
    } else { 
     echo $host . ':' . $port . ' is not responding.<br />' . "\n"; 
    } 
} 

?> 
Cuestiones relacionadas