Lorsque j'appuie sur S
mutt, il enregistre le courrier dans un format de dossier de messagerie ( cur/ tmp/ new/
), mais je veux qu'un seul fichier soit enregistré, tout comme la façon dont les pièces jointes sont enregistrées.
Est-ce configurable?
Le message réel s'affiche également en tant que pièce jointe, vous pouvez donc l'enregistrer à partir de la liste des pièces jointes. À partir de l'index ou du message lui-même, appuyez sur vpour ouvrir les pièces jointes et spour enregistrer
La
s
commande enregistre dans une boîte aux lettres, qui pour vous est au format maildir. Malheureusement, il n'y a pas de commande d'enregistrement dans un fichier, peut-être parce que dans le format mbox historique, une boîte aux lettres qui contient un seul courrier n'est qu'un fichier contenant ce courrier.La
mutt
commande pipe-message (raccourci par défaut|
) peut être utilisée pour cela. Il ouvre une ligne de commande et vous écrivezcat > DESIRED-FILE-PATH
.L'option "pipe-decode" contrôle ce qui arrive aux en-têtes et aux parties MIME lorsque vous enregistrez un message de cette façon.
On pourrait probablement écrire une macro pour cette fonctionnalité.
la source
set pipe_decode=yes
à mon muttrc, c'était ce sur quoi Kai von Fintel écrivait.=
cela.Si vous
touch
utilisez un fichier, puis essayez d'enregistrer ou de copier un message, mutt l'utilisera comme mbox.Vous pouvez également utiliser la copie au lieu de la sauvegarder. Mutt suppose qu'un courrier ne devrait exister qu'en une seule copie et l'enregistrement d'un message dans une autre boîte aux lettres le supprimera de la première, tandis que la copie fera une copie appropriée.
la source
La réponse de Kai von Fintel fonctionne parfaitement, mais je pensais juste partager une macro pour rationaliser ce processus.
Premièrement, dans
muttrc
:Cela redirige l'e-mail complet (y compris les en-têtes et les pièces jointes) vers le script suivant. Créez un fichier exécutable à
~/.local/bin/file_email
.Ce script enregistre le fichier dans le premier argument (c'est-à-dire dans l'
muttrc
exemple ci-dessus, l'e-mail sera enregistré dans/tmp
). Le format du nom de fichier estYYMMDD SUBJECT.eml
. Il se convertit également/
en∕
pour empêcher la création de sous-répertoires.la source
formail
dans le script?formail
, j'ai donc lu. Cependant, je ne sais pas exactement à quelle partie de mon script vous faisiez référence? Vous utilisezformail
pour extraire le sujet et la date? Si oui, probablement une bonne idée. Je vous exhorte à écrire une réponse; Je le voterais sans aucun doute.J'ai essayé toutes les réponses suggérées, mais je n'ai pas pu enregistrer le courrier électronique brut en plusieurs parties (texte / texte + texte / html) dans un fichier, y compris ses en-têtes et tout le reste. J'en avais besoin pour alimenter mon filtre anti-spam avec l'e-mail pour lui apprendre qu'un mail spécifique est du spam ou non ...
La solution que j'ai trouvée consiste à appuyer
e
(c'est-à-dire "modifier le message") sur le message ouvert, ce qui ouvre le message brut dans l'éditeur de votre choix. Raw signifie ici que vous obtenez le message exactement tel qu'il est arrivé dans mutt, vous avez donc tous les en-têtes et tous les octets qui composent le message.Après avoir frappé
e
, j'écris simplement le tampon (j'ai défini l'éditeur sur vim ) dans un fichier avec:w <path_to_file>/<file_name>
et c'est tout.PS: j'aurais ajouté ceci comme commentaire mais vous avez besoin d'un certain niveau de réputation pour ce faire. De plus, je sais que la question est très ancienne mais comme le neomutt est encore utilisé par beaucoup de gens, j'ai pensé que cela pourrait aider quelqu'un.
Mise à jour: j'ai ignoré l'
pipe-decode
option dont Kai parlait. Avec cette option correctement définie, cela aurait également fonctionné via|
. Ma solution fonctionne toujours aussi ;-)la source