2016-01-26 2 views
-2

J'ai besoin de télécharger tous les messages d'un compte de messagerie avec fetchmail.Télécharger du courrier en utilisant IMAP avec fetchmail

Lorsque je tente avec POP3 je peux télécharger tous les messages correctement dans ce format:

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

Mais protocole pop3 ne permettent pas de choisir un dossier, donc je dois utiliser IMAP.

Je ne peux pas télécharger les mails séparément lorsque j'utilise IMAP. J'ai essayé et j'ai un seul fichier avec tous les mails.

Par exemple:

[[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 

je besoin de télécharger tous les mails en utilisant imap dans des fichiers séparés comme le pop3.

Mon .fetchmailrc est:

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 

et mon .procmailrc est:

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 

Il y a une bonne option pour télécharger le courrier électronique utilisant IMAP séparément POP3 égal?

+0

Humm i changé procmail à: CORRECTHOME =/home/mail_import/ MAILDIR = $ CORRECTHOME/ PMDIR =/home/mail_import/ LOGFILE = $ PMDIR/log verbose = sur : 0 Courrier/ Et mda à mda "/ usr/bin/procmail" Et workds: D –

+0

Pas une question de programmation; nominé pour la migration vers https://superuser.com/ – tripleee

Répondre

0

Je ne vois pas pourquoi vous utilisez Procmail ici. Lancez simplement Fetchmail et laissez-le récupérer votre courrier. Spécifiez un dossier de destination dans un format approprié et partez.

Que les messages électroniques soient ou non des fichiers distincts n'est pas une caractéristique du protocole. C'est une caractéristique du programme de livraison que vous utilisez; Si vous choisissez de livrer dans un fichier (format Berkeley mbox, ce que vous voyez ici, avec une ligne From_ au début de chaque message) alors tous les messages seront livrés à un seul fichier. Si vous livrez dans un dossier (au format maildir, par exemple, avec les sous-répertoires newtmpcur), vous obtiendrez le résultat que vous demandez. Faites juste ce que vous avez fait pour obtenir vos messages POP3 dans le dossier maildir MAIL_USER, en utilisant seulement imap au lieu de pop3, et vous êtes tous ensemble.

Si vous voulez spécifiquement faire dans procmail,

DEFAULT=$MAILDIR/INBOX 

à

DEFAULT=$MAILDIR/ 

Mais l'ensemble de votre .procmailrc semble inutile. Pourquoi est-ce que vous faites pipi à travers formail? Les actions que vous avez simplement dupliquer le comportement par défaut de Procmail, avec quelques bugs. Je pense que vous pourriez simplifier à la fois votre propre compréhension et le processus en trouvant comment Fetchmail livrer les messages directement où vous le souhaitez. (Pas tout à fait sûr si elle supporte maildir, cependant, googling rapide n'était pas concluante. Peut-être ne spécifiez pas un mda du tout si c'est ainsi que vous avez fait cela avec POP3.)