2010-01-17 48 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。我們將名字從名單上刪除,我們很高興去。