smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird

Added by Benoit PIERRET over 3 years ago

Bonjour,

Je n'arrive pas à envoyer les copies corrigée.
Voici mes paramètres.

hote smtp: partage.insa-lyon.fr
port smtp: 587
securité smtp:STARTTLS
utilisateur:
mot de passe smtp: ***

L'erreur renvoyée est: DATA: 5.7.1 Rejected for policy reason

Notes:

  • Les mêmes paramètres fonctionnent sous thunderbird
  • L'ancien smtp.insa-lyon.fr permettait l'envoi (avec un autre protocole il me semble)
  • Ne fonctionne pas y compris avec un seul envoi

J'ai un peu de mal à savoir si le problème provient de amc qcm ou du serveur smtp
J'ai un peu regardé les trames sous wireshark. Ca a l'air de bien se passer jusque TLS encryptation (si j'ai bien compris).


Replies (15)

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

Il me semble que cela signifie que AMC a bien pu discuter avec le serveur SMTP, que AMC lui a transmis le message à envoyer mais que le SMTP l'a refuse. Peut-être voir avec les services réseau les raisons de ce refus ? Il a sans doute eu peur que ce soit un spam, peut-être à cause de la pièce jointe avec un message très court...
Vous pouvez également utiliser swaks pour faire des essais de SMTP.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

J'ai fait un ticket DSI: pas de réponse de leur part pour l'instant.
Les mails de ce type ne posent pas de problème, surtout de mail interne à mail interne.
Quelle est l'appli qui fait le mailing dans amc?

J'ai testé avec swaks:

swaks -tls --to xxx@mageos.com --from xxx@insa-lyon.fr --server partage.insa-lyon.fr:587 -a LOGIN [enter]

Ca fonctionne: le mail est recu

Voici la trace:

Username: xxx@insa-lyon.fr
Password: ***
=== Trying partage.insa-lyon.fr:587...
=== Connected to partage.insa-lyon.fr.
<-  220 zmtaauth02.partage.renater.fr ESMTP Postfix
 -> EHLO astro.localdomain
<-  250-zmtaauth02.partage.renater.fr
<-  250-PIPELINING
<-  250-SIZE 102400000
<-  250-VRFY
<-  250-ETRN
<-  250-STARTTLS
<-  250-AUTH PLAIN LOGIN
<-  250-AUTH=PLAIN LOGIN
<-  250-ENHANCEDSTATUSCODES
<-  250-8BITMIME
<-  250 DSN
 -> STARTTLS
<-  220 Ready to start TLS
=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128
=== TLS no local certificate set
=== TLS peer DN="/C=FR/postalCode=69100/ST=Auvergne-Rh\xC3\xB4ne-Alpes/L=Villeurbanne/street=20 Avenue Albert Einstein/O=Institut National des Sciences Appliqu\xC3\xA9es de Lyon/OU=INSA/CN=partage.insa-lyon.fr" 
 ~> EHLO astro.localdomain
<~  250-zmtaauth02.partage.renater.fr
<~  250-PIPELINING
<~  250-SIZE 102400000
<~  250-VRFY
<~  250-ETRN
<~  250-STARTTLS
<~  250-AUTH PLAIN LOGIN
<~  250-AUTH=PLAIN LOGIN
<~  250-ENHANCEDSTATUSCODES
<~  250-8BITMIME
<~  250 DSN
 ~> AUTH LOGIN
<~  334 *******************
 ~> *********************************
<~  334 **********************************
 ~> ************************=
<~  235 2.7.0 Authentication successful
 ~> MAIL FROM:<xxx@insa-lyon.fr>
<~  250 2.1.0 Ok
 ~> RCPT TO:<xxx@mageos.com>
<~  250 2.1.5 Ok
 ~> DATA
<~  354 End data with <CR><LF>.<CR><LF>
 ~> Date: Wed, 18 Nov 2020 18:44:05 +0100
 ~> To: xxx@mageos.com
 ~> From: xxx@insa-lyon.fr
 ~> Subject: test Wed, 18 Nov 2020 18:44:05 +0100
 ~> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 ~>
 ~> This is a test mailing
 ~>
 ~> .
<~  250 2.0.0 Ok: queued as 9F761A028A
 ~> QUIT
<~  221 2.0.0 Bye
=== Connection closed with remote host.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

Quelle est l'appli qui fait le mailing dans amc?

Si vous utilisez la configuration "SMTP" pour l'envoi de messages, c'est le module Email::Sender de perl (voir AMC-mailing.pl).

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

Éventuellement, on peut essayer avec swaks d'envoyer un message texte court accompagné d'un fichier PDF copie corrigée, pour voir...

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

J'ai testé:

swaks -tls --to xxx@mageos.com --from xxx@insa-lyon.fr --server partage.insa-lyon.fr:587 -a LOGIN [enter] --attach filename.pdf

Ça fonctionne!
Ce smtp fonctionne aussi correctement avec thunderbird(w10 et ubunutu, k9mail (android), outlook....
Mes tests sur amc qcm se font sur un seul envoi.

Je dirais qu'il y a une particularité de protocole dans partage.insa-lyon.fr que ne gère pas amc qcm: sur wireshark on voit que le serveur smtp echange 266 packet pour dire que finalement rien n'est envoyé. Il faudrait que je décode le TLS pour en savoir plus (possible dans wireshark) mais je maîtrise pas...

J'ai une réponse de ma DSI qui me dit d'utiliser l'ancien smtp.insa-lyon.fr qui reste valide à court terme. C'est ce que je vais faire!

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

J'ai aussi testé ceci qui fonctionne en python (c'est mon premier programme en python...).
Je sais pas si le code amc qcm ressemble (ou le trouver?)

import smtplib

from email.mime.text import MIMEText

server = smtplib.SMTP('smtp.insa-lyon.fr', 587) # Avec TLS, on utilise SMTP()
server.set_debuglevel(1) # Décommenter pour activer le debug
server.connect('partage.insa-lyon.fr', 587)
server.ehlo()
server.starttls()
server.login('xxx@insa-lyon.fr', 'password')
fromaddr = 'ben <xxx@insa-lyon.fr>'
toaddrs = ['xxx@insa-lyon.fr'] 

msg = MIMEText('Secured test mail2')
msg['Subject'] = 'Test mail'
msg['From'] = 'xxx@insa-lyon.fr'
msg['To'] = 'xxx@insa-lyon.fr'

try:
    server.sendmail(fromaddr, toaddrs, msg.as_string())
except smtplib.SMTPException as e:
    print("reponse"+str(e))

server.quit()

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

J'ai peut-être une idée pour en savoir plus :

  • dans le fichier AMC-mailing.pl, ajoutez la ligne debug=>1, (ligne 216 chez moi) dans l'appel à Email::Sender::Transport::SMTP->new, pour obtenir
        $t = Email::Sender::Transport::SMTP->new(
            {
                host          => $smtp_host,
                port          => $smtp_port,
                ssl           => $smtp_ssl,
                sasl_username => $smtp_user,
                sasl_password => $pass,
                debug         => 1,
            }
        );
    
  • essayez un envoi de mail en mode débogage
  • postez le fichier log produit

Cela devrait permettre de voir tout l’échange SMTP.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

sur ubuntu 20.04 où est censé être le fichier log et le fichier AMC-mailing.pl

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

Quand vous passez en mode débogage, AMC vous dit quel est le fichier log qu'il utilise.
Le fichier AMC-mailing.pl doit être dans /usr/lib/AMC/perl (sinon, la commande locate AMC-mailing.pl devrait pouvoir aider). On doit l'editer en tant que super-utilisateur (par exemple sudo gedit /usr/lib/AMC/perl/AMC-mailing.pl).

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

Voila le fichier log. J'ai remplace mon mail par x.y. J'ai pas trouvé d'autre information confidentielle...
J'ai l'impression que le mail est rejeté après que l'intégralité du mail a été envoyé.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

J'ai pas trouvé d'autre information confidentielle...

En fait, si : j'ai effacé le fichier.

J'ai l'impression que le mail est rejeté après que l'intégralité du mail a été envoyé.

Oui c'est exactement ça. Du coup on peut observer qu'AMC a bien discuté avec le SMTP, l'authentification s'est bien déroulée, mais on n'a uniquement a notre disposition la réponse finale du serveur SMTP :

554 5.7.1 Rejected for policy reason

et on ne sait pas quelle est la règle de la politique du serveur que l'on a enfreinte...

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

Merci pour l'analyse.
J'ai envoyé par mail le code source du même message envoyé par partage.insa-lyon+thunderbird.fr et par smtp.insa-lyon.fr+amc qcm
Je suis pas sur que l'on arrive à trouver la cause du rejet sans que Renater nous en donne la raison.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET over 3 years ago

depuis AMC-mailing.pl:
"User-Agent" => "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0",

Ça fonctionne avec cette modif!!!

Il est même possible de faire:

"User-Agent"=>"amc qcm V1.4.0",

ou
"User-Agent"=>"amc qcm",

J'ai l'impression que peu importe le champ "User-Agent", il faut juste qu'il soit présent. C'est sympa d'avoir la version pour retrouver l'historique des mises à jour à partir de mails.
Pour de futurs utilisateurs:
On peut afficher le user-agent dans thunderbird 78.5.0 avec Affichage/entête/complet. Dans d'autres clients mail, une icône apparaît.
Bravo Alexis, je pensais qu'on ne trouverait pas sans un indice de Renater!

Est-il possible de faire cet ajout dans le code? Si oui, à partir de quelle version stable est-ce que ce sera disponible?

Mes directives aux collègues seront: Utiliser l'ancien smtp pour la version 1.4.0 et à partir de la version x.x.x, utiliser le nouveau smtp (en espérant que l'existance de l'ancien smtp ne soit pas trop courte...)

Note: Le passage de "base64" en "quoted-printable" ne change rien.

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Alexis Bienvenüe over 3 years ago

Est-il possible de faire cet ajout dans le code? Si oui, à partir de quelle version stable est-ce que ce sera disponible?

Ça devrait être bon à partir de la version actuellement sur le PPA test : 1.4.0+git2020-12-03 (voir git:ce6ed76749a8679)

RE: smtp starttls ne fonctionne pas sous amc qcm mais fonctionne sous thunderbird - Added by Benoit PIERRET about 3 years ago

Pour être plus précis, la modification à faire est la suivante.
Après en avoir fait une copie éditer le fichier AMC-mailing.pl par la commande:

sudo gedit /usr/lib/AMC/perl/AMC-mailing.pl

Rechercher la chaîne suivante(ligne 308 pour Alexis et ligne 270 pour moi):
my $email = Email::MIME
    ->create(header_str => [ From=>$sender, To=>$dest,
                 Subject=>$subst->substitute($subject,@sc) ],
         parts      => [ @parts,@attachments ],
        );

Remplacer par:
my $email = Email::MIME
    ->create(header_str => [ From=>$sender, To=>$dest,
                 Subject=>$subst->substitute($subject,@sc),
                 "User-Agent"=>"amc qcm",
                                    ],
         parts      => [ @parts,@attachments ],
        );

Et enregistrer

A noter: la modification est certainement dans la version stable 1.5.0 (à confirmer) mais pour ceux qui ont rédigé en 1.4.0 comme moi, il est prudent de corriger avec la me version et ce patch.

(1-15/15)