发送电子邮件php

时间:2011-05-04 04:12:33

标签: php codeigniter html-email

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

我想知道为什么它可以在我的本地工作,但不能在服务器上工作。在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';
        }
    }

2 个答案:

答案 0 :(得分:1)

除非您初始化配置选项,否则设置配置选项不起作用。在$config数组后添加:

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

答案 1 :(得分:0)

根据我想的你想要做的事情:

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

应该是

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

试着告诉我们。