Projet

Général

Profil

Actions

Fonctionnalité #21763

fermé

TMA - Adaptation de la bascule d'adresse d'envoi SMTP existante à la réponse locale

Ajouté par Henri QUENEAU il y a plus de 2 ans. Mis à jour il y a presque 2 ans.

Statut:
R&D - Terminé
Priorité:
0-Bloquant
Assigné à:
Quentin RIBAC
Version cible:
Début:
03/08/2022
Echéance:
29/09/2022

Description

Bonjour,

Lors de l'utilisation et du paramétrage de la fonctionnalité d'envoi de courriel depuis le dossier d'un courrier avec Maarch Courrier 21.03.xx nous rencontrons un problème qui n'était pas présent dans les versions majeures antérieures.

En effet l'envoi d'un courriel via l'écran suivant :

courriel

semble essayer d'utiliser l'url de l'utilisateur en cours (ici ) en tant qu'expéditeur réel du courriel.

Auparavant, quel que soit l'utilisateur en cours, l'unique adresse d'expédition était celle paramétrée en tant que telle dans les réglages du serveur de messagerie ("Adresse d'envoi").

Le nouveau système pose un problème dans notre contexte technique : seules certaines adresses sont autorisées à utiliser le SMTP en tant qu'expéditeur sur nos infrastructures, en particulier il est imposé que les adresses aient le format suivant avec xxxxxxx qui est une partie variable et libre à la main de notre exploitation. Il est donc courant que nous paramétrions une seule adresse d'envoi par environnement (exemple : )

Le problème que pose le système mis en place dans la 21.03.xx est que l'outil essaye d'utiliser l'adresse de l'utilisateur, variant donc d'un utilisateur à l'autre, en tant qu'expéditeur, ce qui est refusé par le SMTP.

Nous n'avons pas de levier pour agir dessus :

  • fixer l'ensemble des adresses des utilisateurs à l'adresse unique prise en compte par le SMTP rend difficile la sélection d'un destinataire, puisqu'il faut alors que l'utilisateur pense à éditer l'adresse manuellement,
  • il n'est pas possible de changer manuellement l'adresse de l'expéditeur dans l'interface d'envoi d'un courriel,
  • il ne semble pas y avoir de paramétrage technique apparent pour rétablir l'ancien fonctionnement (utilisation d'un alias du style "Bob Morane <>".

Quel(s) possibilité(s) voyez-vous pour rétablir la fonctionnalité d'envoi de courriel dans notre contexte techniques sachant qu'il va être a priori impossible de relâcher les contraintes sur le format de l'adresse qui existent pour des raisons de sécurité ?
Existe-t-il un moyen de rétablir l'ancien fonctionnement au niveau technique ?

Merci d'avance,


Fichiers

courriel.jpg (46,5 ko) courriel.jpg Florent CAPPON, 03/08/2022 16:33
envoimel1810.png (34,2 ko) envoimel1810.png Abdelkamel ALAOUI, 05/08/2022 16:58

Demandes liées 1 (0 ouverte1 fermée)

Copié vers Backlog Courrier - Fonctionnalité #23044: TMA - Retours - Adaptation de la bascule d'adresse d'envoi SMTP existante à la réponse localeR&D - TerminéJean-Laurent DUZANT03/08/202220/12/2022Actions

Mis à jour par Henri QUENEAU il y a plus de 2 ans

En tant qu'administrateur, je souhaite que les agents puissent envoyer des mails depuis Maarch avec comme :

reply-to: adresse mail de l'agent ou de l'entité
mail-from: adresse mail du robot

Cela permet de sécuriser l'application et les envoies de mail

Mis à jour par Henri QUENEAU il y a plus de 2 ans

  • Lié à Anomalie #16768: FROM en envoi de courriels unitaires par l'utilisateur -> Mettre le courriel de l'utilisateur ajouté

Mis à jour par Emmanuel DILLARD il y a plus de 2 ans

  • Lié à Anomalie #16768: FROM en envoi de courriels unitaires par l'utilisateur -> Mettre le courriel de l'utilisateur supprimé

Mis à jour par Emmanuel DILLARD il y a plus de 2 ans

  • Tracker changé de Anomalie à Fonctionnalité
  • Echéance mis à 29/08/2022
  • Statut changé de A qualifier à R&D - A étudier

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Statut changé de R&D - A étudier à R&D - A planifier

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Sujet changé de Rétablissement de l'expéditeur unique avec alias lors de l'envoi de courriel à TMA - Rétablissement de l'expéditeur unique avec alias lors de l'envoi de courriel
  • Echéance 29/08/2022 supprimé

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Statut changé de R&D - A planifier à R&D - En cours
  • Assigné à Emmanuel DILLARD supprimé

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Echéance mis à 20/09/2022

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Echéance changé de 20/09/2022 à 16/09/2022

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Sujet changé de TMA - Rétablissement de l'expéditeur unique avec alias lors de l'envoi de courriel à TMA - Adaptation de la bascule SMTP existante à la réponse
  • Echéance 16/09/2022 supprimé
  • Statut changé de R&D - En cours à Complément d'Informations
  • Assigné à mis à Henri QUENEAU

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Sujet changé de TMA - Adaptation de la bascule SMTP existante à la réponse à TMA - Adaptation de la bascule d'adresse d'envoi SMTP existante à la réponse locale

Mis à jour par Henri QUENEAU il y a environ 2 ans

  • Statut changé de Complément d'Informations à A traiter
  • Assigné à changé de Henri QUENEAU à Emmanuel DILLARD

Message de Florent Cappon sur le ticket client

Bonjour Henri, Emmanuel,

Essayant de vous fournir les logs appropriés je suis tombé dans des problèmes de non-remontée de ces derniers et je me suis lancé dans le debug du souci qui m'a permis de finir par identifier la cause du souci initial : elle se situe à la ligne 758 du fichier src/app/email/controllers/EmailController.php.

Voici le bout de code en question :

757 // If we cannot override from with the sender email address, we try sending the email with the from in the configuration
758 if (strpos($errors, 'Client does not have permissions to send as this sender') !== false && $email['sender']['email'] != $configuration['from']) {
759 $sender = [
760   'email'    => $configuration['from'],
761   'entityId' => $email['sender']['entityId'] ?? null
762 ];
763 EmailModel::update(['set' => ['sender' => json_encode($sender)], 'where' => ['id = ?'], 'data' => [$args['emailId']]]);
764
765 return EmailController::sendEmail(['emailId' => $args['emailId'], 'userId' => $args['userId']]);
766 }
767
768 return ['errors' => $errors];

Il permet d'appliquer la bascule "automatique" vers l'adresse d'envoi renseignée dans l'administration, comme l'a mentionné Emmanuel, sauf qu'elle est conditionnée à deux clauses :

  • la non correspondance entre la première adresse testée et l'adresse renseignée dans l'administration => OK,

et

  • la correspondance entre le message d'erreur remonté par phpmailer et "Client does not have permissions to send as this sender" => KO, c'est cette condition qui fait échouer le test et empêche la bascule sur l'adresse d'administration

En l'occurence notre smtp renvoie l'erreur suivante via phpmailer :

SMTP ERROR: RCPT TO command failed: 553 5.7.1 <florent.cappon@developpement-durable.gouv.fr>: Sender address rejected: not logged in

J'imagine que cette condition a été implémentée initialement par précaution après un test sur votre smtp de dév qui doit renvoyer l'erreur précise que vous avez mis en dur dans le code.

Ma conclusion : enlever cette condition suffit à rétablir la bascule automatique et elle ne semble pas être nécessaire de toute manière.
Cette modification peut-elle être intégrée à un tag dès que possible ?

Bien cordialement,

P.-S. : coder des valeurs en dur c'est le Mal !

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Echéance mis à 16/09/2022
  • Statut changé de A traiter à R&D - En cours
  • Assigné à Emmanuel DILLARD supprimé

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Version cible changé de 21.03 à 21.03 TMA7

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

Ajouter le test sur "Sender address rejected" dans la mécanique de bascule.

Mis à jour par Quentin RIBAC il y a environ 2 ans

  • Assigné à mis à Quentin RIBAC

Mis à jour par GIT LAB il y a environ 2 ans

Commit ajouté sur la branche feat/21763/21.03_TMA7 de MaarchCourrier par Quentin RIBAC
FEAT #21763 TIME 0:20 put smtp errors in const array
https://labs.maarch.org/maarch/MaarchCourrier/commit/4aee950d82454e20e451c3046edba5e90241269d

Mis à jour par Quentin RIBAC il y a environ 2 ans

  • Statut changé de R&D - En cours à R&D - En test

Mis à jour par GIT LAB il y a environ 2 ans

Commit ajouté sur la branche feat/21763/21.03 de MaarchCourrier par Quentin RIBAC
FEAT #21763 TIME 0:20 put smtp errors in const array
https://labs.maarch.org/maarch/MaarchCourrier/commit/611b5d863edf34ddacea42252750d7b9cc5ea4f5

Mis à jour par GIT LAB il y a environ 2 ans

Commit ajouté sur la branche feat/21763/develop de MaarchCourrier par Quentin RIBAC
FEAT #21763 TIME 0:20 put smtp errors in const array
https://labs.maarch.org/maarch/MaarchCourrier/commit/559f75e642b149f153b69f1c0d17f9fe0fd17527

Mis à jour par GIT LAB il y a environ 2 ans

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

TEST 21.03 / Develop

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • Echéance changé de 16/09/2022 à 29/09/2022

Mis à jour par Hamza HRAMCHI il y a environ 2 ans

  • Statut changé de R&D - En test à R&D - Terminé

Mis à jour par GIT LAB il y a environ 2 ans

Mis à jour par GIT LAB il y a environ 2 ans

Mis à jour par Emmanuel DILLARD il y a environ 2 ans

  • ROADMAP mis à version stable (tag)

Mis à jour par Emmanuel DILLARD il y a presque 2 ans

  • Copié vers Fonctionnalité #23044: TMA - Retours - Adaptation de la bascule d'adresse d'envoi SMTP existante à la réponse locale ajouté

Mis à jour par Emmanuel DILLARD il y a presque 2 ans

MAJ Branche Develop->2301

Actions

Formats disponibles : Atom PDF