<?php
class MY_Email extends CI_Email
{
public function clear_debugger_messages()
{
$this->_debug_msg = array();
}
public function get_debugger_messages()
{
return $this->_debug_msg;
}
}
foreach ($email_addresses as $email_address)
{
$this->email->to($email_address);
if (! $this->email->send())
{
echo 'Failed';
// Loop through the debugger messages.
foreach ($this->email->get_debugger_messages() as $debugger_message)
echo $debugger_message;
// Remove the debugger messages as they're not necessary for the next attempt.
$this->email->clear_debugger_messages();
}
else
echo 'Sent';
}
4条答案
按热度按时间p5fdfcr11#
您可以使用电子邮件调试器进一步检查发生了什么:
从Codeigniter Email Class Reference。
如果需要调试器输出为字符串,则可以使用output buffer:
较新版本中的Codeigniter要求
email->send()
函数的$auto_clear
参数显式为FALSE,以便不清除消息和调试,如果您未能传递FALSE,则会有效地终止调试器函数。p1tboqfb2#
print_debugger()
函数可以工作,但是它会在底部附加电子邮件头和消息。如果您只需要调试消息的数组(包括成功消息和错误消息),您可以考虑扩展Email类的功能,如下所示:您可能希望将该类放在./application/libraries文件夹中名为MY_Email.php的文件中。CodeIgniter将自动识别该类的存在并使用它而不是默认的类。
当您想要取得两柴消息的清单(数组)时,您可以执行下列动作:
如果您正在循环消息,并且不想包含以前尝试的调试器消息,则可以执行以下操作:
参考:https://www.codeigniter.com/user_guide/general/creating_libraries.html的“扩展本地库”部分。
vof42yt13#
代码点火器3:
rqenqsqc4#
你可以检查你的邮件日志。如果邮件出错了,那么你应该有一个记录说明原因。
我不知道他们将位于虽然这取决于您的系统。