2011-06-10 22 views
9

Kullanıcı bilgilerini kayıtlı e-postaya göndermek için gmail smtp kullanmak istiyorum.gmail smtp, hosting kodunu kullanarak çalışıyor.

Kullandığım kod yerel sunucumda gayet iyi çalışıyor, ancak paylaşılan barındırma olarak değiştirdiğimde aşağıdaki hatayla çıkıyor.

A PHP Error was encountered 
Severity: Warning 

Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (Connection timed out) 

Filename: libraries/Email.php 

Line Number: 1652 

A PHP Error was encountered 
Severity: Warning 

Message: fwrite(): supplied argument is not a valid stream resource 

Filename: libraries/Email.php 

Line Number: 1795 

.... (more error msg here) 

An Error Was Encountered 
The following SMTP error was encountered: 110 Connection timed out 
Unable to send data: AUTH LOGIN 
Failed to send AUTH LOGIN command. Error: 
Unable to send data: MAIL FROM: 


from: 
The following SMTP error was encountered: 
Unable to send data: RCPT TO: 

to: 
The following SMTP error was encountered: 
Unable to send data: DATA 

.... (more error msg here) 

İşte benim payı barındırma openssl etkin olup olmadığını kontrol etmek için deneyin benim e-posta yapılandırma

$pass = $this->generatePassword('6'); 

$config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_timeout'=>'30', 
    'smtp_user' => '[email protected]', 
    'smtp_pass' => 'mypassword', 
    'mailtype' => 'html', 
    'charset' => 'iso-8859-1' 
); 
$this->load->library('email', $config); 
$this->email->set_newline("\r\n"); 

$this->email->from('[email protected]','Title'); 
$this->email->to($this->input->post('email')); 

$this->email->subject('Subject here'); 
$this->email->message('Your login username is '.$this->input->post('username').'<br/>'.'Password is '.$pass); 

if (!$this->email->send()){ 
    show_error($this->email->print_debugger()); 
}else{ echo 'YEAH!!!';} 

bu. ve i openssl etkinse bu

Openssl OpenSSL desteği
OpenSSL Sürüm OpenSSL 0.9.8e-FIPS-RHEL5

2008 1 Temmuz etkin bulundu. hala kodumdaki hata ne olacak?

Geliştirme için yerel sunucumu kullanmak için yüklendiğimde ve barındırma için yüklendiğinde sıkılmaya başladım, çok fazla hatayla karşılaştım.

Herhangi bir yardım için teşekkür ederiz! Gelişmiş

cevap

15

Paylaşılan barındırmada URL ssl bağlantı noktası gibi görünüyor, açık olduğundan emin olmak için bu kodu kullanın.

$fp = fsockopen("www.google.com", 80, &$errno, &$errstr, 10); // work fine 
if (!$fp) 
    echo "www.google.com - $errstr ($errno)<br>\n"; 
else 
    echo "www.google.com - ok<br>\n"; 


$fp = fsockopen("smtp.gmail.com", 465, &$errno, &$errstr, 10); // NOT work 
if (!$fp) 
    echo "smtp.gmail.com 465 - $errstr ($errno)<br>\n"; 
else 
    echo "smtp.gmail.com 465 - ok<br>\n"; 


$fp = fsockopen("smtp.gmail.com", 587, &$errno, &$errstr, 10); // NOT work 
if (!$fp) 
    echo "smtp.gmail.com 587 - $errstr ($errno)<br>\n"; 
else 
    echo "smtp.gmail.com 587 - ok<br>\n"; 
+1

Merhaba, tq. Sadece paylaşılan barındırma sağlayıcımı sordum. ve 465 numaralı kapıyı açmadıklarını söylediler ve şimdi buna izin veriyorlar. Şimdi çalıştığı gmail smtp sınamak için Joomla 1.6 kullanmaya çalışıyorum. ama ben kod testi web sitemde test ediyorum, sitemden kayıt düğmesine bastığımda cevap yok. ve sayfa devam etmeyi sürdürmek gibidir ... demek istediğim 2 çerezleri temizlemem ya da herhangi bir şeyi sıfırlamam? –

+0

tamam .. Tarayıcıyı kapatıp tekrar açıyorum. ve şimdi çalışıyor. Teşekkürler !! Bu kod için –

+0

thanx –

4

yeni php sürümünde test komut dosyası için güncelleme vardır: Cevabınız için

<?php 

    $fp = fsockopen("www.google.com", 80, $errno, $errstr, 10); // work fine 
    if (!$fp) 
     echo "www.google.com - $errstr ($errno)<br>\n"; 
    else 
     echo "www.google.com - ok<br>\n"; 


    $fp = fsockopen("smtp.gmail.com", 465, $errno, $errstr, 10); // NOT work 
    if (!$fp) 
     echo "smtp.gmail.com 465 - $errstr ($errno)<br>\n"; 
    else 
     echo "smtp.gmail.com 465 - ok<br>\n"; 


    $fp = fsockopen("smtp.gmail.com", 587, $errno, $errstr, 10); // NOT work 
    if (!$fp) 
     echo "smtp.gmail.com 587 - $errstr ($errno)<br>\n"; 
    else 
     echo "smtp.gmail.com 587 - ok<br>\n"; 



?> 
İlgili konular