1

Я настраиваю свой собственный IMAP, и мне нужно собирать электронные письма, полученные в течение последних 9 лет, на моем собственном сервере (и непрерывно синхронизироваться из нескольких почтовых ящиков).

Я успешно настроил fetchmail с тестовой учетной записью в пустом почтовом ящике. Всякий раз, когда я отправляю почту на целевой почтовый ящик, она будет отправлена через POP3 в мой ящик. Но я обнаружил, что сообщение, которое я доставляю в Почту Windows, показывает дату / время fetchmail . Это может быть подходящим для новой почты, но на самом деле не подходит для отслеживания истории.

Мой файл .fetchmailrc настоящее время * показывает

set invisible

poll pop.fastwebnet.it proto imap
        user "redacted" pass "redacted" fetchall
        mda "/usr/lib/dovecot/deliver"

Мой почтовый ящик настроен с использованием Postfix & Dovecot с форматом Maildir . Я выбрал POP3 для fetchmail, потому что он удалит сообщение после синхронизации с maildir.

Как я могу сообщить fetchmail что новая почта, отправленная в Maildir, должна точно соответствовать той, которая найдена на сервере, со ссылкой на дату и время?

Я имею в виду, что если я отправлюсь на синхронизацию своей истории с anotherbox@example.org который собрал 9 лет почты, то все они будут датированы сегодня!

Например, я послал себе тестовое письмо примерно в 14:59 в redacted@fastwebnet.it открыл веб - почту на fastwebnet.it , чтобы подтвердить , что 14:59 был "официальным" время, а затем побежал fetchmail с моего сервера в 15:30. Почта Windows показала, что время электронной почты было 15:30 вместо 14:59.

Обновления

Из комментария и прочтения документации становится ясно, что fetchmail обычно добавляет заголовок Received вверху письма, чтобы клиент обнаружил, что письмо совершенно новое.

Я также запустил fetchmail в подробном режиме, на этот раз используя IMAP. Похоже, что по умолчанию он сбрасывает почту через SMTP, так что вот в чем проблема. Если мой сервер получает почту через SMTP для отправки в Maildir, он будет считать, что электронная почта совершенно новая.

* Я обновил свои вопросы с оригинальной записи

2 ответа2

2

Оказывается , что дата доступен пользователю по почте Windows не приходит из поля заголовка Date а от последнего Received поля Received поле в основном предназначены для отслеживания сообщения через шлюзы доставки, как указано в RFC5321 и RFC5322).

Когда fetchmail доставляет сообщение, даже с опцией mda (без использования SMTP), по умолчанию он добавляет свое собственное поле Received с текущими датой и временем.

К счастью, он предоставляет возможность отключить это:

Опция --invisible (ключевое слово: set invisible) пытается сделать fetchmail невидимым. Обычно fetchmail ведет себя так же, как и любой другой MTA - он генерирует заголовок Received в каждом сообщении, описывающем его место в цепочке передачи, и сообщает MTA, что он пересылает сообщение, полученное с компьютера, на котором работает сама fetchmail. Если опция invisible включена, заголовок Received подавляется, и fetchmail пытается обмануть MTA, на которую он перенаправляет сообщения, чтобы он думал, что он пришел непосредственно с хоста почтового сервера.

Я считаю, что вы хотите объединить эту опцию с доставкой без SMTP, например, с помощью --mda /usr/lib/dovecot/deliver . В противном случае SMTP-сервер, вероятно, добавит свое собственное поле Received после fetchmail.

0

Поскольку задача заключалась в том, чтобы выполнить "первоначальную" историческую миграцию почтового ящика, здесь используются разные методы brute force : переместить электронные письма из старого IMAP в новый почтовый ящик. С тех пор демон fetchmail будет нормально работать с новой почтой.

Через клиента (например, Outlook)

Синхронизируйте оба почтовых ящика, выберите все (или группы) электронных писем и перетащите их, вставьте или вставьте в новую папку «Входящие». Это займет некоторое время и ручную работу, но может не нанести или причинить небольшой ущерб, особенно если вы перемещаете электронные письма в группах

Через свалку

Поскольку у меня есть доступ к серверу, такой инструмент, как imap2maildir, может выгрузить ящик IMAP в ящик, совместимый с Maildir. Слияние исходного Maildir с новым правильно инициализирует коллекцию сообщений

С помощью любого другого конкретного коммерческого инструмента

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .