2 votes

Postfix : Comment vérifier si mes en-têtes de courriel sont conformes aux normes RFC5321/RFC5322 ?

Nous utilisons un MTA Postfix (version : 3.4.14, OS : Debian 10) et depuis peu, les courriels envoyés à un certain fournisseur (Web.de/GMX) ne sont plus acceptés (les courriels sont envoyés par un ancien programme Perl, qui a toujours fonctionné de manière fiable jusqu'à présent) :

Jan 26 10:21:51 hostname postfix/smtp[24531]: 5915310CD43: to=<recipient@web.de>, relay=mx-ha02.web.de[212.227.17.8]:25, delay=0.34, delays=0. 01/0/0.18/0.15, dsn=5.0.0, status=bounced (host mx-ha02.web.de[212.227.17.8] said: 554-Transaction failed 554-Reject due to policy restrictions. 554 For explanation visit https://web.de/email/senderguidelines?ip=1.3.5.2&c=hi (in reply to end of DATA command))

J'ai envoyé un courriel à l'opérateur de Web.de et j'ai obtenu la réponse suivante :

Les e-mails seront rejetés par notre système de messagerie si les informations fournies dans l'en-tête de l'e-mail ne sont pas conformes aux spécifications des RFC 5321 et RFC 5322. Cela inclut les points suivants :

  • Les en-têtes suivants doivent être syntaxiquement corrects : Date, From, Sender, To
  • Les en-têtes BCC, CC, Date, From, Sender, Subject et To ne doivent pas apparaître plus d'une fois.

Par conséquent, veuillez vérifier l'exactitude des informations fournies par votre système et contacter l'administrateur de votre système si nécessaire. Veuillez également tenir compte de nos directives relatives aux expéditeurs :

https://www.gmx.net/mail/senderguidelines/

https://web.de/email/senderguidelines/

J'ai vérifié les en-têtes et ils n'apparaissent pas plus d'une fois (il s'agit d'un courriel que j'ai envoyé à mon adresse électronique privée) :

Return-Path: <www-data@sender.com>
Delivered-To: myaddress@mydomain.com
Received: from mail.mypersonalmta.com
        by mail.mypersonalmta.com with LMTP
        id Mj4HKoIHEGATFAAA8lfkpQ
        (envelope-from <www-data@sender.com>)
        for <myaddress@mydomain.com>; Tue, 26 Jan 2021 13:13:54 +0100
Received: from sender.com (sender.com [1.1.1.1])
        by mail.mypersonalmta.com (Postfix) with ESMTPS id 311DC3EBDA
        for <myaddress@mydomain.com>; Tue, 26 Jan 2021 13:13:54 +0100 (CET)
Received: by sender.com (Postfix, from userid 33)
        id DFAF110CBE9; Tue, 26 Jan 2021 13:13:51 +0100 (CET)
X-Priority: 3 (Normal)
Reply-to: "My Name" <myaddress@work.com>
From: "My Name" <myaddress@work.com>
To: "My Name" <myaddress@mydomain.com>
Subject: =?UTF-8?B?U2VydmVya29uZmlndXJhdGlvbg==?=
Mime-Version: 1.0
Content-type: multipart/mixed;
        boundary="==Serviceplaner==multipart/mixed==0=="
Message-Id: <20210126121351.DFAF110CBE9@sender.com>
Date: Tue, 26 Jan 2021 13:13:51 +0100 (CET)
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mydomain.com;
        s=dk100; t=1611663234;
        h=from:from:reply-to:reply-to:subject:subject:date:date:
         message-id:message-id:to:to:cc:mime-version:mime-version:
         content-type:content-type; bh=b1FPU+OUKvDQDm+TJNNJ4gnjC2tvP3esicGNZxlMRGU=;
        b=NGDHmG4XaGZYCkDB4iT7MlzYTREHbpL5QrJZm1guR2CsL18B6efRf7SU+roM+p9vaY/8VI
        5g77bu9XiQ1Uz9g2wqHfKQ45Kh7pPjlxxT9gugKBi+Wb0eo0oQQ/C+dLe/LdRRZqnY+4Gc
        lnmpO6FXv9i7sfNXkcHUq62UPQIBT40=
ARC-Seal: i=1; s=dk100; d=mydomain.com; t=1611663234; a=rsa-sha256;
        cv=none;
        b=xMVJHET/VP+NQdzb2osJo1BVLMgCX60/0SL9ZSywsJiDEkUReK8wedi2Ahw+kSBypj+XWO
        TKH7/OZjWxbzUlKeMqFo4kLpHj2ygIu2ThXpYXYbW/D+tNG7CK7f3byz+j8myaddressGj+g9hQ05
        I0LnjAInYPniK8qGsFJG4sXvrUb/7CY=
ARC-Authentication-Results: i=1;
        mail.mypersonalmta.com;
        dkim=none;
        spf=pass (mail.mypersonalmta.com: domain of www-data@sender.com designates 1.1.1.1 as permitted sender) smtp.mailfrom=www-data@sender.com
X-Spamd-Bar: ++++
X-Spam-Level: ****
Authentication-Results: mail.mypersonalmta.com;
        dkim=none;
        dmarc=none;
        spf=pass (mail.mypersonalmta.com: domain of www-data@sender.com designates 1.1.1.1 as permitted sender) smtp.mailfrom=www-data@sender.com

Je ne sais pas comment vérifier si les en-têtes de courriel sont syntaxiquement corrects et conformes aux normes RFC5321/RFC5322. J'ai une idée, mais je ne suis pas tout à fait sûr : peut-être est-ce parce qu'il y a de l'UTF8 dans l'en-tête Subject (l'UTF-8 qui est converti en ASCII est peut-être un problème, je ne sais pas) ? Comment procéderiez-vous dans ce cas ? Une idée ? :)

3voto

anx Points 5996

Le texte passe-partout faisant référence à la correction de la syntaxe de votre courrier n'indique probablement pas un problème spécifique à ce sujet - il s'agit simplement d'un des éléments que vous devez prendre en compte. peut alors que vous ne pouvez pas faire grand-chose pour empêcher, par exemple, qu'ils (ou leurs sources d'information, à savoir Spamhaus) n'apprécient pas votre fournisseur d'hébergement.

Un problème courant est que les en-têtes apparaissent différents pour le destinataire et pour vous, en raison d'un pliage incohérent.

Il se peut que, par inadvertance, vous terminiez vos en-têtes trop tôt et que vous manquiez ainsi des en-têtes obligatoires - ou que vous terminiez une partie du corps sans CRLF, de sorte que le destinataire ne puisse pas utiliser la limite multipartite, ce qui suppose un courrier incomplet.

Demandez à un autre programme d'analyser votre courrier - votre courrier brut, pas une version copiée-collée où votre éditeur a déjà soigneusement canonisé toutes les données. fins de lignes avec un seul \n .

cat ~/MAIL/Sent/cur/ui.uid.a,S | python3 -c 'import sys,email,email.policy; print("\n".join(part.get_content_type() for part in email.message_from_file(sys.stdin, policy=email.policy.SMTP+email.policy.strict).walk()))'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X