2012-06-26 5 views
5

Ich verwende SMTP, um E-Mails in meinem CAKEPHP-Projekt zu senden. Meine E-Mail-Konfiguration folgt alsCakePHP 2.0 SMTP-Einstellungen für E-Mail funktioniert nicht

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 
    ); 

und meinem Mail-Funktionalität Code als

$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'); 

    } 

folgt, während ich Mail seines Wurf folgenden Fehler SMTP Timeout Senden ist. Meine SMTP-Server-Details sind korrekt und funktionieren auf einem vorhandenen Server einwandfrei. Ich weiß nicht, wo ich falsch liege

Antwort

6

Überprüfen Sie den Verschlüsselungstyp (falls zutreffend) zu testen, zum Beispiel SSL- oder TLS-

Ihre Host-URL sollte so etwas wie dies in einem solchen Fall aussehen

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

oder

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

Wenn Ihr SMTP-Server über SSL verfügt, müssen Sie php_openssl in php.ini aktivieren, um diesen Dienst zu verwenden. können Sie diesen Code verwenden

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

neben was hier bereits sugested war hier, dass das Modul muss geladen werden. Ich habe festgestellt, dass auf einigen Servern einige Ports blockiert sind. Ich habe dieses Skript verwendet, um einige Server zu testen:

<?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"; 
    } 
} 

?> 
Verwandte Themen