【问题标题】:Codeigniter sending out multiple emailsCodeigniter 发送多封电子邮件
【发布时间】:2014-01-13 11:43:37
【问题描述】:

我在表达式引擎插件中使用 codeigniters 电子邮件类(EE 运行 CI)。 出于某种原因,每次运行插件时,它都会发送 2 封电子邮件,而不是 1 封。这些电子邮件是相同的。

{exp:cdwd_emailer:questionnaire type="{segment_3}" entry_id="{segment_4}"}

这是上面调用的函数。

public function questionnaire() {

    $type = $this->EE->TMPL->fetch_param('type');
    $typeLower = str_replace("-", " ", $type);
    $typeUpper = ucwords($typeLower);

    print_r($type);

    $entry_id = $this->EE->TMPL->fetch_param('entry_id');

    $subject = $typeUpper.' Questionnaire Submission';
    $fromEmail = 'email@email.com';
    $fromName = 'Test Name';
    $toEmail = 'email@email.com';

    $message = '
        <p>A new '.$typeLower.' has been submitted.</p>
        <p><a href="http://www.domain.co.uk/questionnaires/view/'.$type.'/'.$entry_id.'">Please click here to view this submission</a></p>
    ';

    $this->EE->load->library('email');
    $this->EE->email->set_mailtype("html");         
    $this->EE->email->from($fromEmail, $fromName);
    $this->EE->email->to($toEmail);     
    $this->EE->email->subject($subject);
    $this->EE->email->message($message);
    $this->EE->email->send();

}

谁能告诉我为什么?我想不通。我打印了 type 和 entry_id 参数的内容,以检查每个参数中只有 1 个被收集。

谢谢

【问题讨论】:

    标签: codeigniter email expressionengine


    【解决方案1】:

    我认为您必须在发送邮件后清除您的电子邮件对象。 根据表达式引擎,您必须调用:

     ee()->email->clear();
    

    对于您的情况:

    $this->EE->email->clear();
    

    【讨论】:

    • 谢谢。我已经添加了它,但它仍然发送两封电子邮件。
    • 在电子邮件发送代码后停止执行 (exit();)。然后检查您的邮件。
    • 当我添加 exit() 时,它仍然会发送两封电子邮件,但也会显示空白页面而不是模板。
    • 那么你必须检查你的服务器电子邮件队列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2014-06-17
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多