我设置了一个脚本,当用户将电子邮件插入提供的输入时,会向用户发送激活链接。
我正在使用CodeIgniter的电子邮件类来发送多部分电子邮件,而我遇到的问题是,当发送电子邮件时,调试人员说电子邮件已成功发送但邮件从未收到。
当我将电子邮件发送到我的内部工作电子邮件时,它发送得很好。但是,当我将它发送到我的Gmail帐户时,它永远不会通过。
我设法将问题追踪为在电子邮件中插入链接的问题。当我删除链接时,电子邮件发送正常。我重新打开了链接,我的Gmail帐户从未收到过该电子邮件。
有没有人遇到过这个问题,或者你对如何解决这个问题有任何见解?
答案 0 :(得分:0)
您的电子邮件被拒绝..这不是CI问题..
答案 1 :(得分:0)
好的,所以听起来问题不在于CodeIgniter或您的代码,而是服务器的邮件传输代理将其发送到Gmail服务器。
CodeIgniter会将电子邮件放在一起并将其提供给PHP引擎,该引擎将其传递给服务器上的邮件传输代理以进行发送。 MTA将向PHP报告,并因此向CodeIgniter报告它已正确收到电子邮件。作为PHP&此时CodeIgniter的工作已完成,他们将报告他们已成功发送。
检查Gmail中的垃圾邮件文件夹,看看它是否已放入其中..?我暂时没有使用CI,所以记不清楚,但我认为在发送之前可能需要设置一个HTML-email参数。如果是这样,Gmail可能也会设置此设置。
在此处向下滚动到“电子邮件首选项”: http://codeigniter.com/user_guide/libraries/email.html并将邮件类型设置为HTML。
如果这不起作用,则需要完全调试。
要正确调试问题,您需要能够访问MTA日志。这是本地开发服务器还是实时生产机器?是Linux还是Windows?如果Linux,哪个发行?你知道你在使用哪个MTA吗?你有SSH服务器访问权限吗?
如果您可以获得SSH访问权限并找出您所拥有的MTA,那么查找的内容将会更加简单,并且您将能够监控外发消息和目标服务器的响应。