2011-05-04 150 views
0

我使用CI库通过smtp发送HTML邮件。当我尝试从我的电脑发送时,它会发送正确的HTML。但是当我从服务器发送它,为什么我得到HTML标记。没有格式化为HTML?我已经将'mailtype'设置为'html'。发送邮件php

我想知道它为什么在我的本地工作,而不是在服务器。在PHP中有没有任何配置?或者我应该发送电子邮件标题或什么?

public function index() 
    {  
     $config = array(
      'protocol' => 'smtp', 
      'smtp_host' => 'tls://smtp.gmail.com', 
      'smtp_port' => 465, 
      'smtp_user' => 'xxxx', 
      'smtp_pass' => 'xxxx', 
      'mailtype' => 'html', 
      'charset' => 'utf-8' 
     ); 

     $this->load->library('email', $this->config->item('email')); 
     $this->email->set_newline("\r\n"); 
     $this->email->from('xxxx', 'xxxx'); 

     $this->email->to("xxxx"); 

     $this->email->subject('Test Email'); 

     $body = $this->load->view('welcome_message',null,TRUE); 

     $this->email->message($body); 

     if (!$this->email->send()){ 
      echo 'fail to load email'; 
     } 
     else { 
      echo 'success to send email'; 
     } 
    } 
+0

代码,代码,代码 – 2011-05-04 04:13:53

+0

你尝试简单的使用sendmail,如果你有同样的问题看? – eyaka1 2011-05-04 12:59:21

+0

'$ this-> email-> print_debugger()'输出了什么? – 2011-05-04 18:22:51

回答

1

设置配置选项不起作用,除非你初始化它们。您$config阵列后补充一点:

$this->email->initialize($config); 
+0

是的你是对的,我只是发现我们应该再次初始化配置。很烦人。 – 2011-05-06 03:32:21

0

根据我认为你想要做的事:

$this->load->library('email', $this->config->item('email')); 

应该

$this->load->library('email', $config); 

尝试,让我们知道。