Question

im en utilisant procmail aux e-mails en avant à différents dossiers dans mon Maildir. J'utilise ces deux lignes pour obtenir le FROM et TO de la poste, qui fonctionne assez bien.

FROM=`formail -x"From:"`
TO=`formail -x"To:"`

Ces deux commandes renvoient toute la ligne sans: et Au: préfixe. Donc, je reçois quelque chose comme:

Firstname Lastname <firstname.lastname@mail-domain.com>

Maintenant, je veux extraire le courrier électronique entre . Pour ce tuyau i la variable FROM et TO grepper comme ça.

FROM_PARSED=`echo $FROM | grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*'`
TO_PARSED=`echo $TO | grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*'`

Mais quand j'imprimer FROM_PARSED dans le journal de procmail en utilisant LOG = FROM_PARSED, je reçois une chaîne vide dans FROM_PARSED et TO_PARSED.

Mais si je lance ces commandes sur ma console, tout fonctionne très bien. J'ai essayé beaucoup d'autres méthodes de grep, en utilisant grep, egrep, sed et même coupé (coupe ). Tout travail sur la console, mais je l'utiliser dans procmail il retourne tout simplement rien.

Est-il possible que procmail est pas autorisé à utiliser grep et sed commandes? Quelque chose comme un chroot?

Je n'obtiennent des journaux d'erreurs dans mon journal procmail. Je veux juste extraire l'adresse e-mail valide la ligne FROM et TO. Avec des œuvres formail extraction, mais l'analyse syntaxique avec grep ou sed échoue, même si l'expression est correcte.

pourrait-il aider quelqu'un? Peut-être que je dois procmail de configuration en quelque sorte.

Était-ce utile?

La solution

Etrange.

J'ajouté au fichier des utilisateurs

SHELL=/bin/bash

Le shell utilisateurs a été mis à / bin / false, ce qui est correct parce que son utilisateur de messagerie, pas d'accès ssh du tout.

Autres conseils

Vous devriez bien citer "$FROM" et "$TO".

Vous aurez également besoin de préfixe grep avec LC_ALL=POSIX pour assurer [:alnum:] correspondra en réalité les 26 personnages bien connus + 10 chiffres de l'alphabet anglais.

Vous avez déjà résolu, mais pour répondre à votre question réelle, il est possible d'exécuter procmail dans un chroot, mais cela est certainement pas fait par lui-même Procmail. Sendmail l'habitude de venir avec quelque chose appelé Sendmail restreint Shell (appelé à l'origine rsh mais renommé remsh) qui a permis aux administrateurs système de chroot le processus de livraison. Mais pour résumer, ceci est une caractéristique du MTA, pas de Procmail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top