2014-02-27 162 views
1

电子邮件在当地,但给错误得到发送时,网站上传 这里是图书馆的代码,请帮助CI SMTP Gmail发送

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Emaillib { 

    function send_email($fromEmail, $fromName, $details) { 
     $CI = & get_instance(); 
     $CI->load->library('email'); 

     $config['protocol'] = 'smtp'; 
     $config['smtp_host'] = 'ssl://smtp.gmail.com'; 
     $config['smtp_port'] = '465'; 
     $config['smtp_timeout'] = '7'; 
     $config['smtp_user'] = '[email protected]'; // Email 
     $config['smtp_pass'] = '*****'; // Password 
     $config['charset'] = 'utf-8'; 
     $config['newline'] = "\r\n"; 
     $config['mailtype'] = 'html'; // or html 
     $config['validation'] = TRUE; // bool whether to validate email or not 

     $CI->email->initialize($config); 

     $CI->email->from($fromEmail, $fromName); 
     $CI->email->to('[email protected]'); // To Email 
     $CI->email->reply_to($fromEmail, $fromName); 

     $CI->email->subject('Enquiry through Website'); 
     $CI->email->message($details); 

     $isSent = $CI->email->send(); 
     //echo $CI->email->print_debugger(); 

     if (!$isSent) { 
      return 'false'; 
     } 
     return 'success'; 
    } 

} 

?>

+3

有什么错误? – Lexib0y

+0

检查您的端口 - 465可能不会打开 – NorthBridge

+0

电子邮件成功在localhost ..当网站上传 – user3360875

回答

0

因为你说,它工作正常,在当地表示这是代码问题,而与服务器配置有关。这很难说准确的问题是什么,但我会用支票做以下

  • 检查服务器的日志文件中的任何错误
  • 确保在php.ini中启用了SSL下面一行是 - 未注释extension=php_openssl.dll
  • 确保端口465是开放的

尝试那些下手,看看会发生什么