2012-06-26 13 views
5

काम नहीं कर रहा है मैं अपने सीकेईपीएचपी परियोजना में ईमेल भेजने के लिए एसएमटीपी का उपयोग कर रहा हूं। जबकि मैं मेल भेज रहा हूँ अपने फेंक त्रुटि एसएमटीपी टाइमआउट निम्नलिखित के रूप मेंईमेल पर केकफ़्पी 2.0 एसएमटीपी सेटिंग्स

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

    } 

इस प्रकार मेरा ईमेल config के रूप में

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

और मेरे मेल कार्यक्षमता कोड इस प्रकार है। मेरा एसएमटीपी सर्वर विवरण मौजूदा सर्वर में काम कर रहा है ठीक है। मुझे नहीं पता कि मैं कहां गलत हूं

उत्तर

6

चेक एन्क्रिप्शन प्रकार इस कोड का उपयोग कर सकते हैं SSL या TLS

आपका मेजबान यूआरएल तरह के मामले में कुछ इस तरह देखना चाहिए

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

या

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

यदि आपके एसएमटीपी सर्वर में एसएसएल है, तो आपको php_opensslphp.ini में इस सेवा का उपयोग करने के लिए सक्षम करना होगा। आप (यदि लागू हो), उदा परीक्षण करने के लिए

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

बगल में यहाँ यहाँ क्या पहले से ही sugested था कि मॉड्यूल लोड किया जाना चाहिए। मैंने पाया कि कुछ सर्वरों में कुछ बंदरगाह अवरुद्ध हैं। मैंने कुछ स्क्रिप्ट का परीक्षण करने के लिए इस स्क्रिप्ट का उपयोग किया:

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

?> 
संबंधित मुद्दे