Повторное получение почты

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 22:52, 29 марта 2008 (править)
Dmach (Обсуждение | вклад)
м
← К предыдущему изменению
Текущая версия (14:17, 24 марта 2010) (править) (отменить)
Rin (Обсуждение | вклад)
м
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
== Описание проблемы == == Описание проблемы ==
-В ряде случаев может возникнуть проблема повторного получения почты, когда вы вдруг получаете письма когда-то уже полученные. Проблема может возникнуть в случае выполнения следующих условий:+В ряде случаев может возникнуть проблема повторного получения почты, когда вы вдруг получаете письма когда-то уже полученные. Проблема описанная ниже может возникнуть в случае выполнения следующих условий:
* Для получения почты в настройках почтовой программы у вас используется протокол [http://tools.ietf.org/html/rfc1939 POP3] и установлена галочка "Оставлять сообщения на сервере" * Для получения почты в настройках почтовой программы у вас используется протокол [http://tools.ietf.org/html/rfc1939 POP3] и установлена галочка "Оставлять сообщения на сервере"
Строка 8: Строка 8:
== Техническое описание == == Техническое описание ==
-Для POP3 протокола есть две команды получения списка писем на сервере: LIST и UIDL, все они возвращают список в котором для каждого письма указан порядковый номер и идентификатор. Различия этих команд в том, что UIDL обязан возвращять уникальный идентификатор письма а LIST - не обязан. List предназначена для идентификации писем в рамках текущего подключения к почтовому серверу, UIDL - для идентификации писем на протяжении всего времени. +Для POP3 протокола есть две команды получения списка писем на сервере: LIST и UIDL, все они возвращают список в котором для каждого письма указан порядковый номер и идентификатор. Различия этих команд в том, что UIDL обязан возвращать уникальный идентификатор письма а LIST - не обязан. List предназначена для идентификации писем в рамках текущего подключения к почтовому серверу, UIDL - для идентификации писем на протяжении всего времени.
-Почтовый клиент запоманает идентификатор и в будущем не получает письма с известным ему идентификатором. Обычно, в почтовых серверах идентификатор для письма получаемый этими командами совпадает, то есть, обе команды возвращают уникальный идентификатор. Таким образом можно не заботится о том какую команду вы используете. К сожалению, почтовый сервер используемый на хостинге [http://www.1Gb.ru 1Gb.ru] возвращает разные идентификаторы, при этом идентификаторы возвращаемые командой LIST постоянны в рамках текущей временной зоны, после изменения времени идентификаторы команды LIST меняются.+Почтовый клиент запоминает идентификатор и в будущем не получает письма с известным ему идентификатором. К сожалению, в почтовом сервере используемом на хостинге 1Gb.ua имеется ошибка, которая приводит к тому, что уникальные идентификаторы писем выдаваемые командой UIDL после перехода на зимнее либо летнее время меняются. Таким образом почтовый клиент видит для старых писем новый идентификатор и считает, что письмо новое и, следовательно, его нужно получить.
-Таким образом, почтовые программы, использующие в процессе работы только команду LIST сталкиваются с проблемой того, что идентификаторы полученные ранее более недействительные и все письма в ящике имеют новые идентификаторы и значит нужно их снова получать.+== Предыдущие данные ==
-== Кто виноват ==+К сожалению, ранее мы ошибочно полагали что проблема происходит из-за использовании некоторыми почтовыми клиентами идентификаторов возвращаемых по команде LIST в качестве уникальных (что, без сомнения является неправильным поведением), а наш почтовый сервер ошибки не содержит. Эти данные были ошибочны, дополнительные исследования показали, что проблема именно в почтовом сервере.
-Никто не виноват. Просто сложилась такая ситуация связанная с расплывчатостью стандартов (которые на самом деле не стандарты а рекомендации) и сложившимися практиками программирования почтовых клиентов.+Мы приносим извинения за ошибочную информацию.
-== Что делать ==+== Пути решения проблемы ==
-Есть несколько путей решения проблемы:+Специалисты компании прилогают все имеющиеся усилия, что бы решить эту проблему в ближайшем будущем. К сожалению, диалог с разработчиками используемого ПО почтового сервера по данной проблеме может иметь длительный характер и мы пока не можем назвать точных сроков решения проблемы.
 + 
 +Тем не менее уже сейчас есть несколько обходных путей решения проблемы:
* Ничего не делать - вы можете просто удалить повторно полученные письма, в следующий раз такая ситуация возникнет через 6 месяцев, что достаточно большой срок. Вы так же можете уменьшить в почтовой программе время хранения письма на сервере, в этом случае при следующем переводе часов вы получите меньше дублей. * Ничего не делать - вы можете просто удалить повторно полученные письма, в следующий раз такая ситуация возникнет через 6 месяцев, что достаточно большой срок. Вы так же можете уменьшить в почтовой программе время хранения письма на сервере, в этом случае при следующем переводе часов вы получите меньше дублей.
-* Отказаться от хранения писем на сервере.+* Отказаться от хранения писем на сервере, это так же повысит скорость работы почтовой программы с ящиком, так как ей не нужно будет предварительно получать и обрабатывать весь список писем в ящике.
* Использовать дополнительные услуги работы с почтовым ящиком. Если же вам важно иметь доступ в почтовый ящик с множества компьютеров вы можете применить альтернативные методы работы * Использовать дополнительные услуги работы с почтовым ящиком. Если же вам важно иметь доступ в почтовый ящик с множества компьютеров вы можете применить альтернативные методы работы
** IMAP-протокол позволяет работать с почтовым ящиком без получения писем ** IMAP-протокол позволяет работать с почтовым ящиком без получения писем
-*** На хостинге 1Gb.ru вы можете включить расширенный режим IMAP для почтовых ящиков, который сможет повысить стабильность работы сервиса IMAP+*** На хостинге 1Gb.ua вы можете включить расширенный режим IMAP для почтовых ящиков, который сможет повысить стабильность работы сервиса IMAP
** Создать отдельный ящик для каждого места откуда вы работаете с почтой и дублировать всю входящую почту на эти ящики ** Создать отдельный ящик для каждого места откуда вы работаете с почтой и дублировать всю входящую почту на эти ящики
-*** На хостинге 1Gb.ru этой цели служат "Списки рассылки" (ссылка доступна в полном списке фукнций)+*** На хостинге 1Gb.ua этой цели служат "Списки рассылки" (ссылка доступна в полном списке фукнций)
-** Воспользоваться услугой хостинга почты на почтовом сервере Microsoft Exchange, посмотрите [http://www.1gb.ru/services_exchange.php описание услуги]+** Воспользоваться услугой хостинга почты на почтовом сервере Microsoft Exchange, посмотрите [http://www.1gb.ua/services_exchange.php описание услуги]
 + 
 +== Демонстрация проблемы ==
 + 
 +Ниже приводится лог примера работы с почтовым ящиком до и после изменения времени на сервере. Обратите внимание на уникальные идентификаторы писем, возвращаемы по коменде UIDL
 + 
 +Было:
 + 
 + C:\>telnet pop3-2.1gb.ua 110
 + +OK <-810598293.20752@mail-u4-boxes.in-solve.hidden>, POP3 server ready.
 + user uXXXX
 + +OK uXXXX is known here.
 + pass **********
 + +OK Welcome! 3 messages (40965 bytes)
 + list
 + +OK 3 messages, 40965 bytes
 + 1 1773
 + 2 1078
 + 3 3768
 + .
 + uidl
 + +OK unique IDs follow...
 + 1 30QD7OI.CNM387D5A29
 + 2 4CBM8WM.CNM387D7E4E
 + 3 57O1W56.CNM387DCA95
 + .
 + quit
 + +OK mail-u4-boxes.in-solve.hidden Server closing down.
 +
 + C:\>time
 + The current time is: 1:43:24,82
 + 
 +После:
 + 
 + C:\>telnet pop3-2.1gb.ua 110
 + +OK <-807558809.2230@mail-u4-boxes.in-solve.hidden>, POP3 server ready.
 + user uXXXX
 + +OK uXXXX is known here.
 + pass **********
 + +OK Welcome! 3 messages (40965 bytes)
 + list
 + +OK 3 messages, 40965 bytes
 + 1 1773
 + 2 1078
 + 3 3768
 + .
 + uidl
 + +OK unique IDs follow...
 + 1 30QD7OI.CNM387D6229
 + 2 4CBM8WM.CNM387D864E
 + 3 57O1W56.CNM387DD295
 + .
 + quit
 + +OK mail-u4-boxes.in-solve.hidden Server closing down.
 +
 + C:\>time
 + The current time is: 3:35:34,37
 + 
 +[[Категория:Почта]]

Текущая версия

Содержание

[править] Описание проблемы

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

  • Для получения почты в настройках почтовой программы у вас используется протокол POP3 и установлена галочка "Оставлять сообщения на сервере"
  • С момента последнего получения почты был переход на летнее либо зимнее время

[править] Техническое описание

Для POP3 протокола есть две команды получения списка писем на сервере: LIST и UIDL, все они возвращают список в котором для каждого письма указан порядковый номер и идентификатор. Различия этих команд в том, что UIDL обязан возвращать уникальный идентификатор письма а LIST - не обязан. List предназначена для идентификации писем в рамках текущего подключения к почтовому серверу, UIDL - для идентификации писем на протяжении всего времени.

Почтовый клиент запоминает идентификатор и в будущем не получает письма с известным ему идентификатором. К сожалению, в почтовом сервере используемом на хостинге 1Gb.ua имеется ошибка, которая приводит к тому, что уникальные идентификаторы писем выдаваемые командой UIDL после перехода на зимнее либо летнее время меняются. Таким образом почтовый клиент видит для старых писем новый идентификатор и считает, что письмо новое и, следовательно, его нужно получить.

[править] Предыдущие данные

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

Мы приносим извинения за ошибочную информацию.

[править] Пути решения проблемы

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

Тем не менее уже сейчас есть несколько обходных путей решения проблемы:

  • Ничего не делать - вы можете просто удалить повторно полученные письма, в следующий раз такая ситуация возникнет через 6 месяцев, что достаточно большой срок. Вы так же можете уменьшить в почтовой программе время хранения письма на сервере, в этом случае при следующем переводе часов вы получите меньше дублей.
  • Отказаться от хранения писем на сервере, это так же повысит скорость работы почтовой программы с ящиком, так как ей не нужно будет предварительно получать и обрабатывать весь список писем в ящике.
  • Использовать дополнительные услуги работы с почтовым ящиком. Если же вам важно иметь доступ в почтовый ящик с множества компьютеров вы можете применить альтернативные методы работы
    • IMAP-протокол позволяет работать с почтовым ящиком без получения писем
      • На хостинге 1Gb.ua вы можете включить расширенный режим IMAP для почтовых ящиков, который сможет повысить стабильность работы сервиса IMAP
    • Создать отдельный ящик для каждого места откуда вы работаете с почтой и дублировать всю входящую почту на эти ящики
      • На хостинге 1Gb.ua этой цели служат "Списки рассылки" (ссылка доступна в полном списке фукнций)
    • Воспользоваться услугой хостинга почты на почтовом сервере Microsoft Exchange, посмотрите описание услуги

[править] Демонстрация проблемы

Ниже приводится лог примера работы с почтовым ящиком до и после изменения времени на сервере. Обратите внимание на уникальные идентификаторы писем, возвращаемы по коменде UIDL

Было:

C:\>telnet pop3-2.1gb.ua 110
+OK <-810598293.20752@mail-u4-boxes.in-solve.hidden>, POP3 server ready.
user uXXXX
+OK uXXXX is known here.
pass **********
+OK Welcome! 3 messages (40965 bytes)
list
+OK 3 messages, 40965 bytes
1 1773
2 1078
3 3768
.
uidl
+OK unique IDs follow...
1 30QD7OI.CNM387D5A29
2 4CBM8WM.CNM387D7E4E
3 57O1W56.CNM387DCA95
.
quit
+OK mail-u4-boxes.in-solve.hidden Server closing down.

C:\>time
The current time is:  1:43:24,82

После:

C:\>telnet pop3-2.1gb.ua 110
+OK <-807558809.2230@mail-u4-boxes.in-solve.hidden>, POP3 server ready.
user uXXXX
+OK uXXXX is known here.
pass **********
+OK Welcome! 3 messages (40965 bytes)
list
+OK 3 messages, 40965 bytes
1 1773
2 1078
3 3768
.
uidl
+OK unique IDs follow...
1 30QD7OI.CNM387D6229
2 4CBM8WM.CNM387D864E
3 57O1W56.CNM387DD295
.
quit
+OK mail-u4-boxes.in-solve.hidden Server closing down.

C:\>time
The current time is:  3:35:34,37
Личные инструменты