我在表达式引擎插件中使用 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 protected]';
$fromName = 'Test Name';
$toEmail = '[email protected]';
$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 个。
谢谢
我认为您必须在发送邮件后清除电子邮件对象。 根据表达式引擎,您必须调用:
ee()->email->clear();
对于您的情况:
$this->EE->email->clear();