【问题标题】:Sending email php发送电子邮件 php
【发布时间】:2011-05-04 04:12:33
【问题描述】:

我使用 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';
        }
    }

【问题讨论】:

  • 您是否尝试过简单地使用 sendmail 并查看是否有同样的问题?
  • $this->email->print_debugger() 输出什么?

标签: php codeigniter html-email


【解决方案1】:

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

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

【讨论】:

  • 是的,你说得对,我只是发现我们应该再次初始化配置。太烦人了。
【解决方案2】:

基于我认为您正在尝试做的事情:

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

应该是

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

尝试告诉我们。

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 2016-04-13
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2013-07-18
    相关资源
    最近更新 更多