2010-01-17 4 views
3

У меня есть простой отправитель электронной почты для активации учетной записи пользователя. В зависимости от того, какой адрес электронной почты я использую, я получаю значительно разное время ответа: электронная почта в университете - 1 минута, Gmail - 3-4 часа, Yahoo - 1 или 2 дня - что кажется странным. Кто-нибудь еще видел это явление?cakephp Activation Email Sending slow

EDIT:

Там не было много ответов (даже для Баунти), но я попытаюсь объяснить мою проблему более четко.

Это вероятно не 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

Просто любопытно - кто-то поддержал это сообщение ... У людей подобные проблемы? – Dirk

+0

да ... Я тоже один из них – assaqqaf

+0

тоже - gmail 8 часов или около того! На сновидении. –

ответ

1

Код выглядит нормально, но он, конечно, ничего не говорит о конфигурации почтового сервера. 3-4 часа Я бы подал на Greylisting, но 1-2 дня определенно слишком много. Является ли это воспроизводимым? Сколько адресов вы пробовали?

Как выглядят полные заголовки (полученных) писем? Путь «получен от: ....» должен сказать вам, в какой момент потребовалось 1-2 дня для доставки.

+0

Кажется, что обычная почта php() отлично работает со всеми адресами электронной почты ... должно быть что-то с тортом? Что такое Greylisting? – Dirk

+0

Nevermind-- Я понимаю greylisting - любые другие предложения? – Dirk

+0

Можете ли вы опубликовать сравнение (полученных) почтовых заголовков, отправленных с помощью mail() и через торт? Что говорит «полученный» путь? Каждая точка пересылки почты указана там с указанием даты и времени. –

0

Может быть, вы можете установить PHPMailer как поставщика и создать компонент под названием «Mail» ...

И не забудьте проверить подлинность с SMTP сервера! :)

0

Игнорируйте весь его элемент PHP на мгновение.

Если это, например, сервер linux, отправьте письмо из командной строки, например. mail [email protected]

смотрите, если то же самое происходит именно так. Скорее всего, проблема с конфигурацией сервера не связана с проблемой php или cakePHP.

Посмотрите на несколько основополагающих принципов, например, с полным доменным именем и, возможно, загляните в настройки записей SPF для своей электронной почты. Убедитесь, что сообщения электронной почты поступают с вашего имени домена, а не на кого-либо, например. а не по электронной почте пользователей.

Также проверьте, установлено ли у вас программное обеспечение электронной почты для спама, которое может быть серым, на котором вы отправляете электронную почту на выход (маловероятно, но возможно). в основном, как и спам-фильтр назначения, его задерживает. Попробуйте отправить на учетную запись gmail и посмотреть, не доходит ли она до штрафа или попадает в спам.

Выполняйте все это, не касаясь PHP, если все идет хорошо, тогда настройте базовый php-скрипт, чтобы сделать основное электронное письмо, не использующее CakePHP, если это хорошо работает, то вы знаете его CakePHP и т. Д., Но я в этом сомневаюсь.

+0

, говоря, что, другим фактором является то, что содержимое электронного письма может привести к спаму электронной почты. Так что, возможно, немного измените текст. –

+0

Дело в том, что PhP Mail отправляет без промедления - так как я также не думал, что CakePHP будет проблемой, я больше склоняюсь к тексту, используемому в электронном письме регистрации, - я буду заниматься этим. – Dirk

0

Итак, после дальнейшего копания, я понял, что это проблема нашего сервера. Мы используем Slicehost, и только так случается, что диапазон ips, который был включен в черный список, включал наш собственный ip. Мы получили наше имя от списка, и мы готовы идти.