{"id":32719,"date":"2025-05-06T09:52:30","date_gmt":"2025-05-06T07:52:30","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32719"},"modified":"2025-05-06T11:03:14","modified_gmt":"2025-05-06T09:03:14","slug":"testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/","title":{"rendered":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Quando sviluppiamo applicazioni che inviano email, uno dei problemi pi\u00f9 comuni \u00e8: <em>come testare tutto senza inviare messaggi reali ai nostri utenti (o peggio, al nostro capo)?<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>In questo articolo ti presento <strong>Mailpit<\/strong>, uno strumento moderno, open source e facilissimo da usare per testare l\u2019invio email in ambienti di sviluppo. Lo combineremo con <strong><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/quarkus-guida-pratica-per-esporre-i-metadati-dei-microservizi\/\">Quarkus<\/a><\/strong>, il framework Java pensato per il cloud, per vedere quanto pu\u00f2 essere semplice simulare un server SMTP e validare le nostre logiche di email.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-4b9d9cdb      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#cos\u00e8-mailpit\" class=\"uagb-toc-link__trigger\">Cos&#039;\u00e8 Mailpit<\/a><li class=\"uagb-toc__list\"><a href=\"#perch\u00e9-usarlo-con-quarkus\" class=\"uagb-toc-link__trigger\">Perch\u00e9 usarlo con Quarkus?<\/a><li class=\"uagb-toc__list\"><a href=\"#come-integrare-mailpit-con-quarkus\" class=\"uagb-toc-link__trigger\">Come integrare Mailpit con Quarkus<\/a><li class=\"uagb-toc__list\"><a href=\"#test-automatizzati-con-mailpit\" class=\"uagb-toc-link__trigger\">Test automatizzati con Mailpit<\/a><li class=\"uagb-toc__list\"><a href=\"#con-quarkus-possiamo-fare-di-pi\u00f9\" class=\"uagb-toc-link__trigger\">Con Quarkus, possiamo fare di pi\u00f9?<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#aggiungiamo-lestensione-mailpit\" class=\"uagb-toc-link__trigger\">Aggiungiamo l&#039;estensione Mailpit<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#dev-services-mailpit-pronto-alluso\" class=\"uagb-toc-link__trigger\">Dev Services: Mailpit pronto all&#039;uso<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#come-funziona\" class=\"uagb-toc-link__trigger\">Come funziona?<\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"uagb-toc__list\"><a href=\"#i-test-automatizzati\" class=\"uagb-toc-link__trigger\">I test automatizzati<\/a><li class=\"uagb-toc__list\"><a href=\"#conclusioni\" class=\"uagb-toc-link__trigger\">Conclusioni<\/a><\/ul><\/ul><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cos-e-mailpit\">Cos&#8217;\u00e8 Mailpit<\/h2>\n\n\n\n<p><strong>Mailpit<\/strong> \u00e8 un server SMTP (Simple Mail Transfer Protocol), progettato per intercettare le email inviate dalle applicazioni e mostrarle in una comoda interfaccia web. Le email non vengono recapitate realmente, ma archiviate in una casella di posta virtuale visibile su browser.<\/p>\n\n\n\n<p>\u00c8 ideale per testare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>contenuto HTML<\/li>\n\n\n\n<li>allegati<\/li>\n\n\n\n<li>encoding<\/li>\n\n\n\n<li>email in diverse lingue<\/li>\n\n\n\n<li>template dinamici<\/li>\n<\/ul>\n\n\n\n<p>Sostituisce strumenti come MailHog, con una UI pi\u00f9 moderna e feature avanzate, tra cui una <strong>REST API<\/strong> utile per automazione e test end-to-end.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-perche-usarlo-con-quarkus\">Perch\u00e9 usarlo con Quarkus?<\/h2>\n\n\n\n<p>Quarkus offre l&#8217;estensione ufficiale <code>quarkus-mailer<\/code> per inviare email ma durante lo sviluppo, non vogliamo rischiare di inviare email reali.<\/p>\n\n\n\n<p>Ecco dove entra in gioco Mailpit: configurando Quarkus per inviare email verso Mailpit, possiamo sviluppare in piena sicurezza, visualizzando le email inviate in tempo reale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-come-integrare-mailpit-con-quarkus\">Come integrare Mailpit con Quarkus<\/h2>\n\n\n\n<p>Il primo passo prevede l&#8217;avvio del servizio Mailpit. Esistono modalit\u00e0 diverse di start ma in questo caso useremo la via tramite container usando il comando a seguire.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Usando il comando docker<\/span>\ndocker run --rm -p 1025:1025 -p 8025:8025 axllent\/mailpit\n\n<span class=\"hljs-comment\"># Usando il comando podman<\/span>\npodman run --rm -p 1025:1025 -p 8025:8025 axllent\/mailpit<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Avviando il container di Mailpit, avremo in listen il servizio SMTP sulla porta 1025 e la WebUI sulla porta 8025.<\/p>\n\n\n\n<p>Il secondo passo prevede la configurazione di Quarkus che consiste nell&#8217;aggiungere l&#8217;estensione <code>quarkus-mailer<\/code> e la configurazione del servizio SMTP attraverso il file <code>application.properties<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Aggiunta dell'estensione Quarkus Mailer al progetto<\/span>\n.\/mvnw quarkus:add-extension -Dextensions=<span class=\"hljs-string\">\"mailer\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>A seguire la configurazione di Quarkus Mailer.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Properties\" data-shcb-language-slug=\"properties\"><span><code class=\"hljs language-properties\"><span class=\"hljs-meta\">quarkus.mailer.from<\/span>=<span class=\"hljs-string\">no-reply@example.com<\/span>\n<span class=\"hljs-meta\">quarkus.mailer.host<\/span>=<span class=\"hljs-string\">localhost<\/span>\n<span class=\"hljs-meta\">quarkus.mailer.port<\/span>=<span class=\"hljs-string\">1025<\/span>\n<span class=\"hljs-meta\">quarkus.mailer.mock<\/span>=<span class=\"hljs-string\">false<\/span>\n<span class=\"hljs-meta\">quarkus.mailer.start-tls<\/span>=<span class=\"hljs-string\">disabled<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Properties<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">properties<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Il terzo step prevede l&#8217;invio email. A seguire un esempio minimale d&#8217;invio email tramite un semplice servizio JAX-RS.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-keyword\">@Path<\/span>(\"\/send\")\npublic class MailResource {\n\n    <span class=\"hljs-keyword\">@Inject<\/span>\n    Mailer mailer;\n\n    <span class=\"hljs-keyword\">@GET<\/span>\n    public String sendEmail() {\n        <span class=\"hljs-selector-tag\">mailer<\/span><span class=\"hljs-selector-class\">.send<\/span>(\n            <span class=\"hljs-selector-tag\">Mail<\/span><span class=\"hljs-selector-class\">.withText<\/span>(\"<span class=\"hljs-selector-tag\">test<\/span><span class=\"hljs-keyword\">@example<\/span>.com\", <span class=\"hljs-string\">\"Ciao da Quarkus!\"<\/span>, \n                          <span class=\"hljs-string\">\"Questa \u00e8 una email di test.\"<\/span>)\n        );\n        <span class=\"hljs-selector-tag\">return<\/span> \"<span class=\"hljs-selector-tag\">Email<\/span> <span class=\"hljs-selector-tag\">inviata<\/span>!\";\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Una volta avviata l&#8217;applicazione Quarkus (in modalit\u00e0 dev) con il comando <code>.\/mvnw quarkus:dev<\/code>, sar\u00e0 possibile eseguire un test d&#8217;invio email usando il comando a seguire.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Invio email di prova chiamando la risorsa JAX-RS mappata su \/send<\/span>\ncurl http:<span class=\"hljs-comment\">\/\/localhost:8080\/send<\/span>\n\n<span class=\"hljs-comment\"># La risposta attesa deve essere Email inviata!<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Accedendo alla WebUI di Mailpit, dovreste vedere l&#8217;email appena inviata, cos\u00ec come mostrato dalla figura a seguire.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"331\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-1024x331.jpg\" alt=\"\" class=\"wp-image-32900\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-1024x331.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-300x97.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-768x248.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-1536x496.jpg 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/mailpit_webui_view_receive_email_1-2048x662.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-test-automatizzati-con-mailpit\">Test automatizzati con Mailpit<\/h2>\n\n\n\n<p>Uno dei punti di forza di Mailpit \u00e8 la <strong>REST API<\/strong> che consente di interrogare le email ricevute. Questo lo rende perfetto per test end-to-end o integrazioni automatizzate.<\/p>\n\n\n\n<p>Potremmo per esempio scrivere un test d&#8217;integrazione che usi Rest Assured per:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>inviare un\u2019email tramite l\u2019endpoint della tua app Quarkus<\/li>\n\n\n\n<li>interrogare l\u2019API di Mailpit per verificarne il contenuto<\/li>\n<\/ol>\n\n\n\n<p>A seguire il codice del test d&#8217;integrazione implementato tramite la classe <code>EmailIntegrationTest<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-meta\">@QuarkusTest<\/span>\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">EmailIntegrationTest<\/span> <\/span>{\n\n  <span class=\"hljs-meta\">@Test<\/span>\n  <span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">shouldSendEmailAndVerifyInMailpit<\/span><span class=\"hljs-params\">()<\/span> <span class=\"hljs-keyword\">throws<\/span> InterruptedException <\/span>{\n    <span class=\"hljs-comment\">\/\/ Step 1: Chiamata all'endpoint che invia l'email<\/span>\n    RestAssured.get(<span class=\"hljs-string\">\"\/send\"<\/span>).then().statusCode(<span class=\"hljs-number\">200<\/span>);\n\n    <span class=\"hljs-comment\">\/\/ Attendi che Mailpit riceva l'email<\/span>\n    Thread.sleep(<span class=\"hljs-number\">1000<\/span>);\n\n    <span class=\"hljs-comment\">\/\/ Step 2: Recupera l'ultima email da Mailpit<\/span>\n    <span class=\"hljs-keyword\">var<\/span> response = RestAssured\n        .get(<span class=\"hljs-string\">\"http:\/\/localhost:8025\/api\/v1\/messages\"<\/span>)\n        .then()\n        .statusCode(<span class=\"hljs-number\">200<\/span>)\n        .extract()\n        .jsonPath();\n\n    <span class=\"hljs-keyword\">var<\/span> subject = response.getString(<span class=\"hljs-string\">\"messages&#91;0].Subject\"<\/span>);\n    <span class=\"hljs-keyword\">var<\/span> body = response.getString(<span class=\"hljs-string\">\"messages&#91;0].Snippet\"<\/span>);\n\n    assertThat(subject, containsString(<span class=\"hljs-string\">\"Ciao da Quarkus\"<\/span>));\n    assertThat(body, containsString(<span class=\"hljs-string\">\"email di test\"<\/span>));\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Suggerimento<\/strong>: puoi anche pulire la casella prima di ogni test chiamando DELETE \/api\/v1\/messages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-con-quarkus-possiamo-fare-di-piu\">Con Quarkus, possiamo fare di pi\u00f9?<\/h2>\n\n\n\n<p>Certamente! Grazie all\u2019estensione <code>quarkus-mailpit<\/code>, puoi integrare Mailpit nel tuo ambiente di sviluppo e test <strong>senza configurare nulla manualmente<\/strong>.<\/p>\n\n\n\n<p>In breve, l\u2019estensione:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avvia Mailpit in automatico durante i test<\/li>\n\n\n\n<li>Espone la Web UI su una porta casuale o configurabile<\/li>\n\n\n\n<li>Fornisce un\u2019integrazione fluida per l\u2019invio e l\u2019ispezione delle email<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-aggiungiamo-l-estensione-mailpit\">Aggiungiamo l&#8217;estensione Mailpit<\/h3>\n\n\n\n<p>Al progetto occorre aggiungere l&#8217;estensione <code>quarkus-mailpit<\/code> e <code>quarkus-mailpit-testing <\/code>utilizzando sempre il comando maven cos\u00ec come mostrato a seguire.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Aggiungi l'estensione quarkus-mailpit<\/span>\n.\/mvnw quarkus:add-extension -Dextensions=<span class=\"hljs-string\">\"quarkus-mailpit\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Aggiungiamo al progetto anche la dipendenza <code>quarkus-mailpit-testing<\/code> sul <code>pom.xml<\/code> che ci consentir\u00e0 di eseguire i test d&#8217;integrazione sulle email.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"> <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\n     <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>io.quarkiverse.mailpit<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\n     <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>quarkus-mailpit-testing<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\n     <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>1.6.2<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span>\n     <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">scope<\/span>&gt;<\/span>test<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">scope<\/span>&gt;<\/span>\n <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"812\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_1.jpg\" alt=\"\" class=\"wp-image-32902\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_1.jpg 624w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_1-231x300.jpg 231w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dev-services-mailpit-pronto-all-uso\">Dev Services: Mailpit pronto all&#8217;uso<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/quarkus-cosa-sono-le-estensioni-e-come-funzionano\/\">L\u2019estensione <\/a><code>quarkus-mailpit<\/code> supporta i <strong>Dev Services<\/strong> di Quarkus, consentendo l\u2019avvio automatico di un\u2019istanza di Mailpit durante lo sviluppo e i test, senza necessit\u00e0 di configurazioni manuali.<\/p>\n\n\n\n<p><strong>Quali sono i vantaggi principali? <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nessuna configurazione manuale<\/strong>: Mailpit viene avviato automaticamente se non \u00e8 gi\u00e0 configurato un server SMTP.<\/li>\n\n\n\n<li><strong>Interfaccia web accessibile<\/strong>: puoi visualizzare le email inviate tramite l\u2019interfaccia web di Mailpit all\u2019indirizzo <code>http:\/\/localhost:&lt;dynamic-port&gt;<\/code>.<\/li>\n\n\n\n<li><strong>Sicurezza in fase di sviluppo<\/strong>: evita l\u2019invio accidentale di email reali durante lo sviluppo.<\/li>\n\n\n\n<li><strong>API REST per i test<\/strong>: accesso alle email inviate tramite API REST per facilitare i test automatizzati.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-come-funziona\">Come funziona?<\/h4>\n\n\n\n<p>Quando avvii l\u2019applicazione in modalit\u00e0 di sviluppo (quarkus dev) o durante l\u2019esecuzione dei test, Quarkus rileva automaticamente l\u2019estensione <code>quarkus-mailpit<\/code> e avvia (per impostazione predefinita) un\u2019istanza di Mailpit utilizzando <strong>Testcontainers<\/strong> . L\u2019applicazione viene configurata per utilizzare questa istanza come server SMTP.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"807\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_2-1024x807.jpg\" alt=\"\" class=\"wp-image-32903\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_2-1024x807.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_2-300x236.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_2-768x605.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/05\/quarkus_dev_ui_dev_services_mailpit_2.jpg 1432w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-i-test-automatizzati\">I test automatizzati<\/h2>\n\n\n\n<p>Il vero super potere dell\u2019estensione <code>quarkus-mailpit<\/code> \u00e8 che ti permette di verificare <strong>nei test automatizzati<\/strong> le email ricevute via API, senza dover lanciare nulla manualmente. A seguire un esempio di test end-to-end.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">@QuarkusTest\n@WithMailbox\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">EmailIntegrationTest<\/span> <\/span>{\n\n  @InjectMailbox\n  Mailbox mailbox;\n\n  @AfterEach\n  public <span class=\"hljs-keyword\">void<\/span> afterEach() throws ApiException {\n    <span class=\"hljs-comment\">\/\/ svuota la casella di posta dopo ogni esecuzione di prova<\/span>\n    mailbox.clear();\n  }\n\n  @Test\n  <span class=\"hljs-keyword\">void<\/span> shouldSendEmailAndVerifyInMailpit() throws InterruptedException {\n    <span class=\"hljs-comment\">\/\/ Step 1: Chiamata all'endpoint che invia l'email<\/span>\n    RestAssured.get(<span class=\"hljs-string\">\"\/send\"<\/span>).then().statusCode(<span class=\"hljs-number\">200<\/span>);\n\n    <span class=\"hljs-comment\">\/\/ Step 2: Look up email in Mailpit ed esecuzione delle asserzioni<\/span>\n    Message message = mailbox.findFirst(<span class=\"hljs-string\">\"no-reply@example.com\"<\/span>);\n    \n    assertThat(message, notNullValue());\n    assertThat(message.getTo().get(<span class=\"hljs-number\">0<\/span>).getAddress(), is(<span class=\"hljs-string\">\"test@example.com\"<\/span>));\n    assertThat(message.getSubject(), is(<span class=\"hljs-string\">\"Ciao da Quarkus!\"<\/span>));\n    assertThat(message.getText(), containsString(<span class=\"hljs-string\">\"email di test\"<\/span>));\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Le API Mailbox sono fornite direttamente da <code>quarkus-mailpit-testing<\/code> e queste incapsulano tutte le chiamate REST a Mailpit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusioni\">Conclusioni<\/h2>\n\n\n\n<p>Testare le email non \u00e8 mai stato cos\u00ec facile. Con <strong>Mailpit<\/strong> puoi concentrarti sulla logica della tua applicazione senza preoccuparti di configurare server SMTP esterni o di inviare accidentalmente email a utenti reali.<\/p>\n\n\n\n<p>Mailpit \u00e8 lo strumento perfetto per chi sviluppa email in ambienti dev e test. Con Quarkus, grazie all\u2019estensione <strong>quarkus-mailpit<\/strong>, possiamo integrare il tutto in modo elegante, evitando configurazioni manuali e test fragili.<\/p>\n\n\n\n<p>Che tu stia sviluppando un\u2019applicazione, un microservizio o un backend per un sistema notifiche, ora puoi testare tutto <strong>senza rischi<\/strong>, <strong>senza invii reali<\/strong> e con <strong>massima automazione<\/strong>.<\/p>\n\n\n\n<p><strong>Tutto quanto descritto in questo articolo \u00e8 disponibile nel repository GitHub<\/strong>: <\/p>\n\n\n\n<p>\ud83d\udc49 <a href=\"https:\/\/github.com\/amusarra\/quarkus-poc-mailpit\">https:\/\/github.com\/amusarra\/quarkus-poc-mailpit<\/a><\/p>\n\n\n\n<p>Il progetto \u00e8 stato organizzato utilizzando <strong>tag Git step-n<\/strong>, ognuno dei quali rappresenta uno specifico passo dell\u2019articolo. Questo ti permette di esplorare, testare e approfondire ogni fase in modo graduale e guidato, rendendo pi\u00f9 semplice la comprensione e la riproduzione della soluzione.<\/p>\n\n\n\n<p>Il progetto di esempio \u00e8 stato realizzato con <strong>Quarkus 3.21.3<\/strong> e <strong>Java 23<\/strong>, per sfruttare tutte le funzionalit\u00e0 moderne offerte dal framework.<\/p>\n\n\n\n<p><strong>Link utili:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/axllent\/mailpit\">Mailpit su GitHub<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mailpit.axllent.org\/\">Documentazione Mailpit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/quarkus.io\/guides\/mailer\">Quarkus Mailer Extension<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/quarkiverse\/quarkus-mailpit\">Quarkiverse Mailpit<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando sviluppiamo applicazioni che inviano email, uno dei problemi pi\u00f9 comuni \u00e8: come testare tutto senza inviare messaggi reali ai nostri utenti (o peggio, al nostro capo)? In questo articolo ti presento Mailpit, uno strumento moderno, open source e facilissimo da usare per testare l\u2019invio email in ambienti di sviluppo. Lo combineremo con Quarkus, il&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\">Read more<\/a><\/p>\n","protected":false},"author":299,"featured_media":32897,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10263],"tags":[10329,10446,10438],"collections":[11708],"class_list":{"0":"post-32719","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-it","8":"tag-framework","9":"tag-github-it","10":"tag-sviluppo-software-it","11":"collections-dalla-community","12":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit<\/title>\n<meta name=\"description\" content=\"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit\" \/>\n<meta property=\"og:description\" content=\"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-06T07:52:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-06T09:03:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Antonio Musarra\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Musarra\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\"},\"author\":{\"name\":\"Antonio Musarra\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8649554e10cf6f48891694be1891475b\"},\"headline\":\"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit\",\"datePublished\":\"2025-05-06T07:52:30+00:00\",\"dateModified\":\"2025-05-06T09:03:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\"},\"wordCount\":912,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp\",\"keywords\":[\"Framework\",\"GitHub\",\"sviluppo software\"],\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\",\"name\":\"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp\",\"datePublished\":\"2025-05-06T07:52:30+00:00\",\"dateModified\":\"2025-05-06T09:03:14+00:00\",\"description\":\"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp\",\"width\":1792,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8649554e10cf6f48891694be1891475b\",\"name\":\"Antonio Musarra\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/68ceae8da379c8b4cdbe4d25ad5d94f7678e91e07cee64593261baec2ec44a12?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/68ceae8da379c8b4cdbe4d25ad5d94f7678e91e07cee64593261baec2ec44a12?s=96&d=mm&r=g\",\"caption\":\"Antonio Musarra\"},\"description\":\"Ho iniziato il mio viaggio nel mondo dell'informatica da un Olivetti M24 dotato di un processore Intel 8086 acquistato da mio padre esclusivamente per il suo lavoro. Non ho mai posseduto console di nessun genere (Commodore, Amiga, etc\u2026) e inizialmente quell'enorme scatola mi terrorizzava, terrore durato poco; giorno dopo giorno prendevo rapidamente il controllo fino a quando\u2026. Ho sempre creduto che la condivisione della conoscenza sia un ottimo mezzo per la crescita personale; mi piace condividere le mie competenze attraverso articoli tecnici, progetti open source e pubblicazioni su piattaforme come il mio blog personale https:\/\/www.dontesta.it.\",\"sameAs\":[\"https:\/\/www.dontesta.it\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/amusarra\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit","description":"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/","og_locale":"en_US","og_type":"article","og_title":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit","og_description":"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-05-06T07:52:30+00:00","article_modified_time":"2025-05-06T09:03:14+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp","type":"image\/webp"}],"author":"Antonio Musarra","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Antonio Musarra","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/"},"author":{"name":"Antonio Musarra","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8649554e10cf6f48891694be1891475b"},"headline":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit","datePublished":"2025-05-06T07:52:30+00:00","dateModified":"2025-05-06T09:03:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/"},"wordCount":912,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp","keywords":["Framework","GitHub","sviluppo software"],"articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/","name":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp","datePublished":"2025-05-06T07:52:30+00:00","dateModified":"2025-05-06T09:03:14+00:00","description":"Guida pratica all\u2019uso di Mailpit in Quarkus per testare l\u2019invio email con Dev Services e test automatizzati.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp","width":1792,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/testare-linvio-email-in-quarkus-senza-stress-ne-spam-benvenuti-in-mailpit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/"},{"@type":"ListItem","position":3,"name":"Testare l\u2019invio email in Quarkus senza stress (n\u00e9 spam): benvenuti in Mailpit"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8649554e10cf6f48891694be1891475b","name":"Antonio Musarra","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/68ceae8da379c8b4cdbe4d25ad5d94f7678e91e07cee64593261baec2ec44a12?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/68ceae8da379c8b4cdbe4d25ad5d94f7678e91e07cee64593261baec2ec44a12?s=96&d=mm&r=g","caption":"Antonio Musarra"},"description":"Ho iniziato il mio viaggio nel mondo dell'informatica da un Olivetti M24 dotato di un processore Intel 8086 acquistato da mio padre esclusivamente per il suo lavoro. Non ho mai posseduto console di nessun genere (Commodore, Amiga, etc\u2026) e inizialmente quell'enorme scatola mi terrorizzava, terrore durato poco; giorno dopo giorno prendevo rapidamente il controllo fino a quando\u2026. Ho sempre creduto che la condivisione della conoscenza sia un ottimo mezzo per la crescita personale; mi piace condividere le mie competenze attraverso articoli tecnici, progetti open source e pubblicazioni su piattaforme come il mio blog personale https:\/\/www.dontesta.it.","sameAs":["https:\/\/www.dontesta.it"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/amusarra\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-600x600.webp","author_info":{"display_name":"Antonio Musarra","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/amusarra\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-06-09.48.53-A-horizontal-digital-illustration-representing-stress-free-email-testing-in-a-software-development-context-themed-around-Quarkus-and-Mailpit.-The-sce-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"Antonio Musarra","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/amusarra\/"},"uagb_comment_info":0,"uagb_excerpt":"Quando sviluppiamo applicazioni che inviano email, uno dei problemi pi\u00f9 comuni \u00e8: come testare tutto senza inviare messaggi reali ai nostri utenti (o peggio, al nostro capo)? In questo articolo ti presento Mailpit, uno strumento moderno, open source e facilissimo da usare per testare l\u2019invio email in ambienti di sviluppo. Lo combineremo con Quarkus, il&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/299"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=32719"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32719\/revisions"}],"predecessor-version":[{"id":32906,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32719\/revisions\/32906"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/32897"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32719"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}