{"id":924,"date":"2011-07-03T17:10:16","date_gmt":"2011-07-03T17:10:16","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=924"},"modified":"2011-07-03T17:10:16","modified_gmt":"2011-07-03T17:10:16","slug":"envoyer-un-email-avec-jmeter-via-son-element-requete-smtp","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2011\/07\/03\/envoyer-un-email-avec-jmeter-via-son-element-requete-smtp-924.html","title":{"rendered":"Envoyer un email avec JMeter via son \u00e9l\u00e9ment Requ\u00eate SMTP"},"content":{"rendered":"<p>Ce billet est un petit \u00ab\u00a0howto\u00a0\u00bb pour vous montrer comment utiliser JMeter pour envoyer un email (courriel), ici en utilisant le serveur de messagerie SMTP de Google Mail.<\/p>\n<p>Pour rappel, le <a href=\"http:\/\/fr.wikipedia.org\/wiki\/SMTP\">SMTP<\/a> (Simple Message Transfer Protocol) est le protocole normalis\u00e9 d&rsquo;\u00e9change de message \u00e9lectronique (email). Dans JMeter depuis la version 2.4, un nouvel \u00e9chantillon appel\u00e9 Requ\u00eate SMTP a \u00e9t\u00e9 ajout\u00e9 pour avoir un client SMTP qui envoi donc un email.<\/p>\n<p>Bien entendu, JMeter \u00e9tant un outil de test de charge, avec cet \u00e9chantillon, on peut faire un test de charge sur un serveur de messagerie franchement install\u00e9 pour v\u00e9rifier sa tenue de charge et robustesse (ce qui est mon cas), on peut aussi utiliser cet \u00e9chantillon SMTP pour par exemple s&rsquo;envoyer un email de rapport \u00e0 la fin d&rsquo;un test de charge \u00ab\u00a0long\u00a0\u00bb (qui dure plusieurs heures ou jours), ou tout simplement dans le cadre de la mise en place d&rsquo;un syst\u00e8me d&rsquo;alerte en cas de temps de r\u00e9ponse d\u00e9grad\u00e9 d&rsquo;un site web (par exemple) avec un script qui s&rsquo;ex\u00e9cute toutes les x minutes ou heures.<\/p>\n<p>Revenons \u00e0 notre sujet, voici notre arbre JMeter tout simple pour ce test\u00a0:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Arbre JMeter pour SMTP\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/01-jmeter-requete-smtp.png\" alt=\"\" width=\"253\" height=\"102\" \/><\/p>\n<p><!--more-->Et voici l&rsquo;exemple d&rsquo;\u00e9chantillon SMTP configur\u00e9 pour envoyer un message de test en utilisant les serveurs de Gmail\u00a0:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Requ\u00eate SMTP JMeter\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/02-jmeter-requete-smtp.png\" alt=\"\" width=\"1001\" height=\"736\" \/><\/p>\n<p><em>NB\u00a0: ici est pr\u00e9sent\u00e9 l&rsquo;\u00e9chantillon SMTP de la future version 2.4.1 (en date du billet)<\/em><\/p>\n<p>Rien de m\u00e9chant en soit, si vous utilisez votre compte Gmail en acc\u00e8s SMTP\/POP ou SMTP\/IMAP, la plupart de ces param\u00e8tres vous rappellerons quelque chose. Sinon, voici quelques commentaires, section par section.<\/p>\n<p>Section <strong>Param\u00e8tres du serveur<\/strong> :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Requ\u00eate SMTP section Param\u00e8tres du serveur\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/03-jmeter-requete-smtp.png\" alt=\"\" width=\"799\" height=\"156\" \/><\/p>\n<p>Juste au-dessus de la section, il y a bien entendu la traditionnelle section d&rsquo;identification de l&rsquo;\u00e9chantillon et le champ <em>Commentaires<\/em>.<\/p>\n<ul>\n<li> <span style=\"text-decoration: underline;\">Serveur\u00a0:<\/span> ici on indique le nom ou l&rsquo;adresse IP du serveur SMTP<\/li>\n<li> <span style=\"text-decoration: underline;\">Port\u00a0: <\/span>il existe plusieurs ports \u00ab\u00a0officiels\u00a0\u00bb pour le SMTP, le premier et plus ancien est le 25, sa version avec une couche SSL pour le chiffrement du transport sur le r\u00e9seau est 465 (SMTPS), et une version permettant de chiffrement la partie authentification lors de l&rsquo;\u00e9tablissement d&rsquo;une session SMTP via StartTLS est le port 587. Chez GMail, on a la possibilit\u00e9 d&rsquo;avoir ces trois ports ouverts.<\/li>\n<\/ul>\n<p>Section <strong>Param\u00e8tres du courriel<\/strong> :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Requ\u00eate SMTP JMeter Section Param\u00e8tres du courriel\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/04-jmeter-requete-smtp.png\" alt=\"\" width=\"782\" height=\"138\" \/><\/p>\n<p>Ici c&rsquo;est assez clair pour toute personne qui a d\u00e9j\u00e0 envoy\u00e9e un email.<\/p>\n<p>Section <strong>Param\u00e8tres d&rsquo;authentification<\/strong> :<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Section Param\u00e8tres d'authentification\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/05-jmeter-requete-smtp.png\" alt=\"\" width=\"791\" height=\"71\" \/><br \/>\nLors d&rsquo;un envoi d&rsquo;un message via SMTP, il est possible au pr\u00e9alable de s&rsquo;identifier. C&rsquo;est souvent une mesure obligatoire demand\u00e9e par les serveurs de messagerie pour lutter contre le SPAM et l&rsquo;usurpation d&rsquo;identit\u00e9 d&rsquo;un email. Chez Gmail, c&rsquo;est obligatoire.<\/p>\n<p style=\"text-align: left;\">Section <strong>Param\u00e8tres de s\u00e9curit\u00e9<\/strong> :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Section Param\u00e8tres de s\u00e9curit\u00e9\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/06-jmeter-requete-smtp.png\" alt=\"\" width=\"896\" height=\"95\" \/><\/p>\n<p>Ici, on en revient aux Ports et options\u00a0: SMTP\u00a0: 25, SMTPS\u00a0: 465 et StartTLS\u00a0: 587<\/p>\n<ul>\n<li> Le port 25 n&rsquo;utilise pas g\u00e9n\u00e9ralement de s\u00e9curit\u00e9, donc on choisira \u00ab\u00a0Pas de fonctionnalit\u00e9 de s\u00e9curit\u00e9\u00a0\u00bb si on a mis 25 dans le champ Port plus haut.<\/li>\n<li> Le port 465 utilise la couche SSL pour s\u00e9curiser le transport sur le r\u00e9seau (chiffrement), donc on cochera \u00ab\u00a0Utiliser SSL\u00a0\u00bb<\/li>\n<li> Et le dernier port 587, c&rsquo;est la n\u00e9gociation StartTLS de l&rsquo;authentification, qui demandera donc de cocher \u00ab\u00a0Utiliser StartTLS\u00a0\u00bb<\/li>\n<li> Les autres param\u00e8tres concerne l&rsquo;option \u00ab\u00a0Utiliser SSL\u00a0\u00bb et sont relatives aux modes d&rsquo;utilisation et de confiance des certificats SSL. Pour un serveur SMTPS ayant un certificat SSL reconnu par une autorit\u00e9 de certification reconnue dans JAVA (donc d\u00e9j\u00e0 pr\u00e9sent dans le fichier cacerts de l&rsquo;environnement JAVA), il n&rsquo;y a rien besoin de cocher. Par contre, si vous utilisez un certificat SSL auto-sign\u00e9 ou sign\u00e9 par une autorit\u00e9 de certification non reconnue, vous avez la possibilit\u00e9 de faire confiance \u00e0 tous les certificats ou bien d&rsquo;utiliser votre propre coffre de certificat local contenant la cl\u00e9 publique de votre autorit\u00e9 de certification ou certificat serveur (au lieu donc du cacerts).<\/li>\n<li> La petite option \u00ab\u00a0Force le StartTLS\u00a0\u00bb est pour donc force l&rsquo;utilisation de la n\u00e9gociation StartTLS, souvent en conjugaison avec le port 25 (car on peut avoir du StartTLS sur le port 25).<\/li>\n<\/ul>\n<p>Section <strong>Param\u00e8tres du message<\/strong> :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Section Param\u00e8tres du message\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/07-jmeter-requete-smtp.png\" alt=\"\" width=\"985\" height=\"229\" \/><\/p>\n<p>Ici c&rsquo;est bien entendu le c\u0153ur de l&rsquo;\u00e9chantillon, avec le message \u00e0 envoyer. Les champs Sujet, Message et Fichier attach\u00e9 sont explicites de part leurs noms.<\/p>\n<ul>\n<li> L&rsquo;option \u00ab\u00a0Supprimer l&rsquo;ent\u00eate Sujet\u00a0\u00bb permet d&rsquo;envoyer un message sans sujet<\/li>\n<li> L&rsquo;option \u00ab\u00a0Ajouter un horodatage dans le sujet\u00a0\u00bb permet d&rsquo;avoir un timestamp correspondant au nombre de secondes depuis le 1er Janvier 1970 au moment de l&rsquo;envoi du message<\/li>\n<li> L&rsquo;option \u00ab\u00a0Envoyer le message en texte\u00a0\u00bb permet de revenir \u00e0 un format de message SMTP dans sa version la plus simple (format RFC 822) au lieu d&rsquo;un format MIME (multipart\/mixed) qui lui est plus souple pour les messages avec accents et pi\u00e8ce jointe.<\/li>\n<li> Et l&rsquo;option \u00ab\u00a0Envoyer un message .eml\u00a0\u00bb est pour envoyer un message au format EML (format d&rsquo;export d&rsquo;un message Outlook et utiliser dans beaucoup de client de messagerie).<\/li>\n<\/ul>\n<p>Section <strong>Param\u00e8tres suppl\u00e9mentaires :<\/strong><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Section Param\u00e8tres suppl\u00e9mentaires\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/08-jmeter-requete-smtp.png\" alt=\"\" width=\"782\" height=\"57\" \/><\/p>\n<p><span style=\"text-decoration: underline;\">Deux derni\u00e8res options\u00a0:<\/span><\/p>\n<ul>\n<li> \u00ab\u00a0Calculer la taille du message\u00a0\u00bb qui fait ce que son nom indique, utile notamment dans le cas des messages avec pi\u00e8ces jointes et pour servir ensuite dans les statistiques de JMeter<\/li>\n<li> \u00ab\u00a0Activer les traces de d\u00e9bogage\u00a0?\u00a0\u00bb vous permettra de voir les \u00e9changes entre JMeter et le serveur SMTP sur la sortie standard (la console g\u00e9n\u00e9ralement)<\/li>\n<\/ul>\n<p>Voil\u00e0, on en arrive \u00e0 l&rsquo;ex\u00e9cution de notre envoi.<\/p>\n<p>Voici avec un r\u00e9cepteur Arbre de r\u00e9sultats, le r\u00e9sultat\u00a0:<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"R\u00e9sultat Requ\u00eate SMTP\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/09-jmeter-requete-smtp.png\" alt=\"\" width=\"701\" height=\"456\" \/><br \/>\nCe sont les champs habituels de l&rsquo;arbre de r\u00e9sultats, avec une mention pour le Message de retour, ici, indiquant\u00a0: \u00ab\u00a0Message successfully sent\u00a0!\u00a0\u00bb signifiant la r\u00e9ussite de l&rsquo;envoi.<\/p>\n<p style=\"text-align: left;\">On peut regarder sur l&rsquo;onglet Donn\u00e9es de r\u00e9ponses (et aussi Requ\u00eate), on trouvera le corps du message email envoy\u00e9. Ci-dessous avec un message MIME (par d\u00e9faut)<\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"R\u00e9sultat Requ\u00eate SMTP JMeter\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/10-jmeter-requete-smtp.png\" alt=\"\" width=\"776\" height=\"209\" \/><br \/>\nEt ici un message en texte pur (les balises MIME ont disparut).<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"R\u00e9sultat Requ\u00eate SMTP JMeter\" src=\"\/wp-content\/images\/jmeter-35-requete-smtp\/11-jmeter-requete-smtp.png\" alt=\"\" width=\"744\" height=\"159\" \/><\/p>\n<p>Ceci cl\u00f4ture ce petit comment-faire pour envoyer un email avec JMeter. Bon courage.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce billet est un petit \u00ab\u00a0howto\u00a0\u00bb pour vous montrer comment utiliser JMeter pour envoyer un email (courriel), ici en utilisant le serveur de messagerie SMTP de Google Mail. Pour rappel, le SMTP (Simple Message Transfer Protocol) est le protocole normalis\u00e9 d&rsquo;\u00e9change de message \u00e9lectronique (email). Dans JMeter depuis la version 2.4, un nouvel \u00e9chantillon appel\u00e9 &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2011\/07\/03\/envoyer-un-email-avec-jmeter-via-son-element-requete-smtp-924.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Envoyer un email avec JMeter via son \u00e9l\u00e9ment Requ\u00eate SMTP<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,57,169,34],"tags":[264,330,263],"class_list":["post-924","post","type-post","status-publish","format-standard","hentry","category-jmeter","category-supervision","category-test-fonctionnel","category-tests-de-charges","tag-email","tag-jmeter","tag-smtp"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/comments?post=924"}],"version-history":[{"count":7,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/924\/revisions"}],"predecessor-version":[{"id":931,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/924\/revisions\/931"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}