几个问题重新:CodeIgniter电子邮件

时间:2010-06-14 15:25:33

标签: php email codeigniter

我对CodeIgniter的电子邮件系统有一些问题:

  • 首先,我发送的电子邮件(注册,确认)被gmail和其他邮件客户端中的标准垃圾邮件过滤器捕获。我该如何解决这个问题?像Facebook这样的公司如何通过电子邮件获得电子邮件?

  • 其次,邮件程序在本地工作,但一旦我们部署它就不再运行(不发送电子邮件),但所有其他表单运行正常。有没有人遇到这样的问题?

感谢您的帮助!

3 个答案:

答案 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可以通过两种基本方式发送邮件:

  1. 通过名为“sendmail”的UNIX程序(仅在非Windows服务器上安装 - 仅在安装时 - 请咨询您的托管服务提供商)

  2. 通过SMTP服务器。

  3. 如果您已将CodeIgniter配置为使用SENDMAIL,请检查以确保Sendmail路径正确。您的托管服务提供商通常会在其在线文档中提供此内容。

    如果您使用的是SMTP,则需要确保您的服务器可以联系SMTP服务器。您可以通过SSH登录服务器并输入“telnet your.smtpserver.com 25”来完成此操作。如果您收到有关无法连接的错误消息,则表示您的托管服务提供商连接到您的邮件服务器时出现问题。

    我能够通过在我的生产服务器(http://bit.ly/4pprd6)上启用日志并在尝试发送邮件后立即添加log_message('error', $this->email->print_debugger())来诊断此问题。