我对CodeIgniter的电子邮件系统有一些问题:
首先,我发送的电子邮件(注册,确认)被gmail和其他邮件客户端中的标准垃圾邮件过滤器捕获。我该如何解决这个问题?像Facebook这样的公司如何通过电子邮件获得电子邮件?
其次,邮件程序在本地工作,但一旦我们部署它就不再运行(不发送电子邮件),但所有其他表单运行正常。有没有人遇到这样的问题?
感谢您的帮助!
答案 0 :(得分:3)
我无法回答你的第一个问题 - 它不是CodeIgniter特有的。您只需要确保您的电子邮件看起来不像垃圾邮件。简而言之 - 无法保证保证您的电子邮件不会以垃圾邮件过滤器结束。
关于第二个问题,我希望您的生产服务器需要针对电子邮件进行正确配置。您可能需要configure CodeIgniter才能正确发送电子邮件。我建议设置一个SMTP服务器(或使用现有服务器),而不是使用我认为CodeIgniter默认使用的标准PHP邮件。
答案 1 :(得分:1)
关于垃圾邮件,大多数组织对于如何防止垃圾邮件(不希望发布有助于垃圾邮件发送者的信息)以及在某些情况下他们实际上并不知道的信息非常隐秘 - 一个明显的例子是贝叶斯过滤 - 但是,对于例如,hotmail使用一个完全无法解释的志愿者大军手动分类电子邮件。
执行并获取spamassassin的副本,并尝试对标准规则的工作方式进行反向工程。要检查的明显事项是:
1)避免大量资金
2)不要提'V'字
3)确保您已发布当前且限制性的SPF 1.0政策
4)确保从具有A和PTR DNS记录的地址发送
5)请在地址
中提供使用您的域名的回复电子邮件地址邮件程序在本地工作但是一旦我们部署它就不再运行
不发送电子邮件
哪个?这些是2个完全独立的东西。如果代码丢失(如果是这样,为什么你没有提供错误详细信息)那么它可能是PHP版本问题或与MTA(或PHP邮件配置)连接的问题。
后者是MTA本身的问题。
99.9%的问题报告为PHP邮件失败与PHP无关,而且是MTA的问题。
为您的MTA启用详细的错误报告,并查看其失败的位置。
下进行。
答案 2 :(得分:0)
您可能必须在服务器上配置与本地开发环境不同的电子邮件。我不得不过去。
PHP可以通过两种基本方式发送邮件:
通过名为“sendmail”的UNIX程序(仅在非Windows服务器上安装 - 仅在安装时 - 请咨询您的托管服务提供商)
通过SMTP服务器。
如果您已将CodeIgniter配置为使用SENDMAIL,请检查以确保Sendmail路径正确。您的托管服务提供商通常会在其在线文档中提供此内容。
如果您使用的是SMTP,则需要确保您的服务器可以联系SMTP服务器。您可以通过SSH登录服务器并输入“telnet your.smtpserver.com 25”来完成此操作。如果您收到有关无法连接的错误消息,则表示您的托管服务提供商连接到您的邮件服务器时出现问题。
我能够通过在我的生产服务器(http://bit.ly/4pprd6)上启用日志并在尝试发送邮件后立即添加log_message('error', $this->email->print_debugger())
来诊断此问题。