Je suis en train d'envoyer un e-mail à l'expéditeur en utilisant sendmail -oi -t
, mais en quelque sorte, il extrait MTA, comment écrire le reçu pour obtenir l'expéditeur réel depuis le chemin de retour de messagerie et D'abord dans l'en-tête de l'email est MTA, pas le vrai expéditeur? Alors sendmail peut remettre le courrier électronique Retour à: Auteur: [email protected] ou De: [email protected]Comment écrire une recette pour obtenir l'expéditeur de l'email réel
Voici le procmail.log et le courrier électronique reçu:
...
procmail: Matched "[email protected]"
procmail: Match on "^Sender: \/.+"
procmail: Assigning "LASTFOLDER= (/usr/bin/formail -rA"Precedence: junk" \
-A"X-Loop:[email protected]" \
-I"To: $MATCH"; \
echo "$result"; \
) | /usr/sbin/sendmail -oi -t"
procmail: Assigning "PATH=/home/r/bin:/usr/local/bin:/usr/bin:/bin"
procmail: Unable to treat as directory "/var/mail/new"
procmail: Skipped "/var/mail"
procmail: Assigning "LASTFOLDER=/var/mail/r"
procmail: Executing " (/usr/bin/formail -rA"Precedence: junk" \
-A"X-Loop:addr2mydomain.com" \
-I"To: $MATCH"; \
echo "$result"; \
) | /usr/sbin/sendmail -oi -t"
procmail: Opening "/var/mail/r"
procmail: Acquiring kernel-lock
procmail: Notified comsat: "[email protected]:/var/mail/r"
From btv1==909280b6006==+1xxxxxxxxxx/[email protected] Mon Apr 11 17:09:24 2016
Folder: /var/mail/r
Voici la en-tête de courrier électronique:
From btv1==9062f44d095==+xxxxxxxxxx/[email protected] Fri Apr 8 00:19:01 2016
Return-Path: <btv1==9062f44d095==+xxxxxxxxxx/[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from ch3p-tmo-mm3-sfw004.syniverse.com (chi-tmo-mm3.syniverse.com [x.x.x.x])
by mail.mydomain.com (Postfix) with ESMTP id 7D444222D0
for <[email protected]>; Fri, 8 Apr 2016 00:19:01 +0000 (UTC)
Received: from tmobile.net ([10.166.3.161]) by ch3p-tmo-mm3- sfw004.syniverse.com with ESMTP id RuIW8dEKbs9H2Iyg for <[email protected]>; Fri, 08 Apr 2016 00:18:58 +0000 (GMT)
To: [email protected]
From: [email protected]
Content-Type: multipart/related;Type="text/html";boundary="-boundaryRMS123"
Date: Fri, 8 Apr 2016 00:18:58 GMT
Message-ID: [email protected]
Sender: [email protected]
User-Agent: iPhoneOS/9.2.1 (13D15)
X-Virus-Scanned: by bsmtpd at syniverse.com
Voici la dernière partie de la recette:
:0hc
* !^X-Loop:[email protected]
* ^Sender: \/.+
| (/usr/bin/formail -rA"Precedence: junk" \
-A"X-Loop:[email protected]" ; \
echo "$result"; \
) | /usr/sbin/sendmail -oi -t
J'ai ajouté la ligne *^Sender: \ /.+ et -I "To: $ MATCH"; \, il dit: procmail: Exécution "(/ usr/bin/formail -rA" Préséance: indésirable "\ -A" X-Loop: [email protected] "; \ -I" À: $ MATCH "; \ " /bin/sh: 3: Erreur de syntaxe: fin du fichier inattendu (attendez") ") –
Quelle ligne *^Sender: \ /.+ fait et le $ MATCH est l'expéditeur? Pourquoi c'est dans la double citation? –
Le jeton '\ /' dans une expression régulière Procmail provoque la capture de tout ce qui suit dans la variable 'MATCH'. Nous plaçons généralement des guillemets doubles autour de toutes les variables sauf si nous demandons spécifiquement au shell d'effectuer le fractionnement de jetons et l'expansion générique sur la valeur; voir http://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-variable – tripleee