2016-01-26 8 views
-2

Мне нужно загрузить все почтовые сообщения из почтовой учетной записи с помощью fetchmail.Загрузите почту с помощью IMAP с fetchmail

Когда я пытаюсь с POP3 я могу загрузить все письма правильно в этом формате:

[[email protected] root]# ls /home/mail_import/MAIL_USER/new/ 
1453828024.7837_0.srv 
1453828029.7843_0.srv 

Но протокол pop3 не позволяет выбрать папку, так что мне нужно использовать протокол IMAP.

Я не могу загрузить почту отдельно при использовании IMAP. Я попробовал, и у меня есть один файл со всеми сообщениями.

Например:

[[email protected] home]# stat /home/mail_import/MAIL_USER/teste 
    File: ‘/home/mail_import/MAIL_USER/teste’ 

[[email protected] home]# head /home/mail_import/MAIL_USER/teste 
From [email protected] Tue Jan 26 18:56:31 2016 
Return-path: <[email protected] > 
Envelope-to: [email protected] 
Delivery-date: Wed, 02 Dec 2015 15:47:00 -0500 

Мне нужно, чтобы загрузить все письма с использованием IMAP в отдельных файлах, как pop3.

Мой .fetchmailrc является:

set bouncemail 
set no spambounce 
set softbounce 
set properties "" 
defaults: 
    antispam -1 
    batchlimit 100 

poll DOMAIN with proto IMAP 
    user 'USER' there with password 'PASS' is 'MAIL' here 
    options keep fetchall ssl mda "/usr/bin/procmail -f %F -d %T"; 
    folder INBOX 

и мой .procmailrc является:

MAILDIR=/home/mail_import/MAIL_ACCOUNT 
DEFAULT=$MAILDIR/INBOX 
LOGFILE=/var/log/procmail 
LOCKFILE=$MAILDIR/.default.lock 
VERBOSE=on 
:0 fhw 
|formail 
# 
## Any other rules the user wishes to either include with INCLUDERC, 
## or hardcode into this file, would go here. 
## -------------------------------------------------------------------------- 
## If we're here, the mail didn't match any other rules, so deliver normally. 
:0: 
$DEFAULT 
## If that fails, report an error and throw the mail away. 
EXITCODE=75 
:0 
/dev/null 

Существует несколько правильный вариант, чтобы загрузить электронную почту с помощью IMAP отдельно равный POP3?

+0

Humm я изменил Procmail на: CORRECTHOME =/дом/mail_import/ MAILDIR = $ CORRECTHOME/ PMDIR =/дом/mail_import/ LOGFILE = $ PMDIR/журнал VERBOSE = на : 0 почта/ И mda to mda "/ usr/bin/procmail" И работы: D –

+0

Не вопрос программирования; назначается для перехода на https://superuser.com/ – tripleee

ответ

0

Я не понимаю, почему вы используете Procmail здесь вообще. Просто запустите Fetchmail и позвольте ему получить вашу почту. Укажите папку назначения в соответствующем формате и перейдите.

Независимо от того, являются ли сообщения электронной почты отдельными файлами, это не является признаком протокола. Это особенность программы доставки, которую вы используете; если вы хотите доставить файл (формат Berkeley mbox, то, что вы видите здесь, с линией From_ в начале каждого сообщения), тогда все сообщения будут доставлены в один файл. Если вы доставляете в папку (в формате maildir, например, с подкаталогами newtmpcur), вы получите результат, о котором вы просите. Просто сделайте все, что вы сделали, чтобы получать сообщения POP3 в папку maildir MAIL_USER, используя только imap вместо pop3, и все вы настроены.

Если вы специально хотите сделать это в Procmail, изменить

DEFAULT=$MAILDIR/INBOX 

в

DEFAULT=$MAILDIR/ 

Но полнота вашей .procmailrc кажется бессмысленным. Почему вы делаете трубку через formail? Действия, которые вы просто дублируете поведение Procmail по умолчанию, с несколькими ошибками. Я думаю, вы могли бы упростить свое собственное понимание и процесс, выяснив, как Fetchmail доставляет сообщения прямо туда, где вы хотите. (Не совсем уверен, поддерживает ли он maildir, хотя быстрый поиск в Google был неубедительным. Может быть, вообще не указывать mda, если это так, как вы это сделали с POP3.)