好的,听起来问题不在于 CodeIgniter 或您的代码,而在于服务器的邮件传输代理将其发送到 Gmail 服务器。
发生的事情是 CodeIgniter 将一封电子邮件放在一起并将其提供给 PHP 引擎,PHP 引擎将其传递给服务器上的邮件传输代理进行发送。MTA 将向 PHP 和 CodeIgniter 报告它已正确收到电子邮件。由于此时 PHP & CodeIgniter 的工作已经完成,他们会报告他们已经发送成功。
检查您的 Gmail 中的垃圾邮件文件夹,看看它是否已放入其中..?我有一段时间没有使用 CI,所以记不清了,但我认为您可能需要在发送之前设置一个 HTML 电子邮件参数。如果是这样,Gmail 可能也希望这样设置。
在此处向下滚动到“电子邮件首选项”:http:
//codeigniter.com/user_guide/libraries/email.html并将邮件类型设置为 HTML。
如果这不起作用,您将需要完全调试。
要正确调试问题,您需要能够访问 MTA 日志。这是本地开发服务器还是现场生产机器?是 Linux 还是 Windows?如果是Linux,哪个发行版?您知道您使用的是哪个 MTA 吗?您是否具有对服务器的 SSH 访问权限?
如果您能够获得 SSH 访问权限并找出您拥有的 MTA,那么查找起来会容易得多,并且您将能够监控传出消息和目标服务器的响应,因为它们发生了。