2010-01-17 42 views
3

我有一个简单的电子邮件发件人用于激活用户帐户。根据我使用的电子邮件地址,我得到的响应时间显着不同:大学电子邮件 - 1分钟,Gmail - 3-4小时,雅虎 - 1或2天 - 这看起来很奇怪。有没有人看过这种现象?cakephp激活电子邮件发送缓慢

编辑:

有没有(即使是奖金)很多反应,但我会试着更清楚地解释我的问题。

可能不greylsting - 如果我这么一个简单的:

php mail ($to, $subject, $body) // this delivers instantly. 

我的CakePHP代码:

function __sendActivationEmail($id) { 
    $User = $this->User->read (null, $id); 
    $this->set ('suffix_url', $User ['User'] ['id'] . '/' . $this->User->getActivationHash()); 
    $this->set ('username', $User ['User'] ['username']); 
    $this->Email->to = $User ['User'] ['email']; 
    $this->Email->subject = 'Test.com - ' . __ ('please confirm your email address', true); 
    $this->Email->from = '[email protected]'; 
    $this->Email->template = 'user_confirm'; 
    $this->Email->sendAs = 'text'; 
    $this->Email->delivery = 'mail'; 
    $this->Email->send(); 
} 

导致延迟13分钟(好吧,我们会处理与它)到5-6小时(不太好,因为这是一封激活邮件)。对于我的一些用户来说,它可以立即运行,但对于其他用户(同一服务提供商,即Gmail,它会看到这些延迟)。

任何线索?

+0

只是好奇 - 有人upvoted这篇文章...人们有类似的问题吗? – Dirk 2010-01-26 04:26:33

+0

是啊...我就是其中之一 – assaqqaf 2010-01-28 12:00:17

+0

我也是 - gmail 8个小时左右!在dreamhost上。 – 2011-09-19 08:58:21

回答

1

该代码看起来不错,但它当然不会告诉任何有关邮件服务器的配置。 3-4小时我会放下Greylisting,但1-2天肯定是太多了。这是可重复的吗?你有多少个地址试过?

(收到)邮件的完整标题是什么样的? “从......收到......”路径应该告诉你在哪个点需要1-2天才能交付。

+0

它似乎像普通的PHP邮件()适用于所有电子邮件地址...必须是蛋糕的东西? 什么是灰名单? – Dirk 2010-01-17 23:12:56

+0

没关系 - 我了解灰名单 - 其他建议? – Dirk 2010-01-17 23:15:26

+0

你可以发布使用邮件()和蛋糕发送的(收到的)邮件头之间的比较吗? “接受”路径是什么意思?邮件的每个跳转点都在日期和时间中列出。 – 2010-01-17 23:29:20

0

也许你可以安装PHPMailer的作为供应商并创建一个名为“邮件”组件...

,不要忘记你的SMTP服务器认证! :)

0

忽略它的整个PHP元素一会儿。

例如,如果它是一个linux服务器,从命令行发送邮件,例如mail [email protected]

看看是否发生了同样的事情。它很可能是一个服务器配置问题,而不是PHP或CakePHP问题。

查找一些基本信息,例如有一个FQDN,并可能考虑为您的电子邮件设置SPF记录。确保电子邮件来自您的域名,而不是别人的电子邮件不是用户的电子邮件。

此外,检查您是否有垃圾邮件软件设置可能是灰色列出你的电子邮件出路(不太可能,但可能)。最主要的是目标垃圾邮件过滤器正在延迟它。尝试发送到一个Gmail帐户,看看它是否通过罚款或进入垃圾邮件。

所有这些都没有触及PHP,如果一切都很顺利,那么建立一个基本的PHP脚本来做一个基本的电子邮件不使用CakePHP,如果工作正常,那么你知道它的CakePHP等,但我怀疑它。

+0

在说,另一个因素是它可能是电子邮件的内容与垃圾电子邮件的严重匹配..所以也许改变文本一下。 – 2010-01-28 14:53:23

+0

事情是,PhP邮件发送没有延迟 - 因为我也不相信CakePHP会是问题,我更倾向于使用注册电子邮件中使用的文本 - 我会摆弄这个。 – Dirk 2010-01-29 00:30:44

0

因此,经过进一步挖掘,我意识到这是我们的服务器主机的问题。我们使用Slicehost,并且恰巧发生了一系列被列入黑名单的ips包括我们自己的ip。我们将名字从名单上删除,我们很高兴去。