{"id":20420,"date":"2026-09-14T23:34:40","date_gmt":"2026-09-14T23:34:40","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/creer-authentification-emails-laravel-mailgun-digital-ocean\/"},"modified":"2026-09-14T23:34:40","modified_gmt":"2026-09-14T23:34:40","slug":"creer-authentification-emails-laravel-mailgun-digital-ocean","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/","title":{"rendered":"Cr\u00e9er l&rsquo;authentification des emails dans Laravel 11 avec Mailgun et Digital Ocean"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Lors de sa sortie, la version 5.7 de Laravel a ajout\u00e9 une nouvelle capacit\u00e9 de v\u00e9rification des emails des utilisateurs. Si vous avez d\u00e9j\u00e0 ex\u00e9cut\u00e9 php <code>artisan make:auth<\/code> dans une application Laravel, vous connaissez ce sentiment de plaisir et d&rsquo;enthousiasme en voyant toutes vos pages d&rsquo;inscription et de connexion, avec le hachage des mots de passe et une table des utilisateurs d\u00e9j\u00e0 configur\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cet enthousiasme retombe vite apr\u00e8s le d\u00e9ploiement en production, lorsque vous d\u00e9couvrez que n&rsquo;importe qui peut s&rsquo;inscrire avec <code>garbage@notrealemail.com<\/code> ou tout ce qu&rsquo;il a envie de saisir. Cette fine couche d&rsquo;authentification de session n&rsquo;est pas d&rsquo;une grande aide dans une application en production. L&rsquo;introduction de l&rsquo;interface <code>MustVerifyEmailinterface<\/code> dans Laravel 5.7 s&rsquo;est ajout\u00e9e \u00e0 la structure d&rsquo;authentification afin que les utilisateurs doivent utiliser une adresse email r\u00e9elle et valide pour se connecter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il n&rsquo;y a pas eu de changements majeurs concernant la fonctionnalit\u00e9 d&rsquo;authentification des emails dans Laravel (d\u00e9sormais en version 11), mais nous vous recommandons <a href=\"https:\/\/laravel.com\/docs\/11.x\/artisan\" target=\"_tabs\" rel=\"noopener noreferrer\">de mettre \u00e0 jour vers la derni\u00e8re version<\/a> si ce n&rsquo;est pas d\u00e9j\u00e0 fait.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel 11, sorti le 12 mars 2024, continue d&rsquo;offrir de puissantes capacit\u00e9s de v\u00e9rification des emails tout en introduisant une structure d&rsquo;application simplifi\u00e9e et d&rsquo;autres am\u00e9liorations. Ce tutoriel vous guidera dans la configuration de l&rsquo;authentification des emails dans Laravel 11 avec Mailgun et son d\u00e9ploiement sur Digital Ocean. <\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-1546\"><p class=\"h5 m-0\" id=\"toc-title-1546\">Table des mati\u00e8res<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#creer-une-nouvelle-application-laravel\">Cr\u00e9er une nouvelle application Laravel<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#verification-des-emails-dans-laravel-11\">V\u00e9rification des emails dans Laravel 11<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#place-a-mailgun\">Place \u00e0 Mailgun<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#verifier-que-cela-fonctionne\">V\u00e9rifier que cela fonctionne<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#ressources\">Ressources<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#vous-voulez-plus-darticles-comme-celui-ci-de-la-part-de-mailgun\">Vous voulez plus d&rsquo;articles comme celui-ci de la part de Mailgun\u00a0?<\/a><\/div><\/div><\/nav>\n\n    <div data-content-type=\"longform\"  class=\"callout text-body-color px-5 py-6 px-md-6 px-lg-7 py-md-7 longform-spacings rounded-lg bg-light\" data-theme=\"light\">\r\n\r\n        <div class=\"content-body\"> <p>1. La version minimale requise de PHP est d\u00e9sormais la 8.2.<\/p><p>2. La structure de l&rsquo;application est plus simplifi\u00e9e avec un fichier bootstrat\/app.php repens\u00e9.<\/p><p>3. Utilisation par d\u00e9faut de SQLite pour le stockage de la base de donn\u00e9es, les sessions, le cache et les files d&rsquo;attente.<\/p><p class=\"mb-0\">4. Nouvelle fonctionnalit\u00e9 de routage de sant\u00e9 pour la surveillance de l&rsquo;application.<\/p><\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">Cr\u00e9er une nouvelle application Laravel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La premi\u00e8re \u00e9tape consiste \u00e0 cr\u00e9er une nouvelle application avec quelques configurations\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    $ laravel new email-verification-example rnrn$ cd email-verification-example rnrn$ touch database\/database.sqlite \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Cela cr\u00e9era l&rsquo;application Laravel 11.x par d\u00e9faut avec la structure d&rsquo;authentification et un fichier pour une base de donn\u00e9es SQLite. Mettez \u00e0 jour votre fichier .env pour pointer vers le chemin complet du fichier SQLite\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    DB_CONNECTION=sqlite rnDB_DATABASE=\/full\/path\/to\/email-verification-example\/database\/database.sqlite \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">V\u00e9rification des emails dans Laravel 11<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Examinons la structure d&rsquo;authentification par d\u00e9faut et voyons quelles modifications doivent \u00eatre apport\u00e9es pour ajouter la v\u00e9rification des emails.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez consulter la documentation de Laravel sur la validation des emails <a href=\"https:\/\/laravel.com\/docs\/11.x\" target=\"_tabs\" rel=\"noopener noreferrer\">ici<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans Laravel 11, le processus d&rsquo;ajout de la v\u00e9rification des emails reste similaire, mais la structure des fichiers a chang\u00e9. Ouvrez votre fichier bootstrap\/app.php et assurez-vous qu&rsquo;il inclut les \u00e9l\u00e9ments suivants\u00a0:\u00a0<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"0\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Impl\u00e9mentez ensuite l&rsquo;interface <code>MustVerifyEmail<\/code>. En PHP, une interface sp\u00e9cifie les m\u00e9thodes qu&rsquo;une classe doit impl\u00e9menter. Vous devrez v\u00e9rifier que votre <code>AppModeIsUser<\/code> impl\u00e9mente le contrat <code>IlluminateContractsAuthMustVerifyEmail<\/code>\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"0\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Cette interface impose d&rsquo;avoir trois nouvelles m\u00e9thodes sur notre mod\u00e8le d&rsquo;utilisateur\u00a0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>hasVerifiedEmail() <\/code><\/li>\n\n\n\n<li><code>markEmailAsVerified() <\/code><\/li>\n\n\n\n<li><code>sendEmailVerificationNotification() <\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;impl\u00e9mentation de ces m\u00e9thodes se trouve dans\u00a0: <code>vendor\/laravel\/framework\/src\/Illuminate\/Auth\/MustVerifyEmail.php<\/code>. Pour marquer un utilisateur comme v\u00e9rifi\u00e9, nous devons avoir une colonne <code>email_verified_at<\/code> dans notre table des utilisateurs, ce qui est d\u00e9j\u00e0 fourni dans notre migration par d\u00e9faut de cr\u00e9ation de la table des utilisateurs\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    Schema::create(&#039;users&#039;, function (Blueprint $table) { rn \u202f\u202f$table-&gt;increments(&#039;id&#039;); rn \u202f\u202f$table-&gt;string(&#039;name&#039;); rn \u202f\u202f$table-&gt;string(&#039;email&#039;)-&gt;unique(); rn \u202f\u202f$table-&gt;timestamp(&#039;email_verified_at&#039;)-&gt;nullable(); rn \u202f\u202f$table-&gt;string(&#039;password&#039;); rn \u202f\u202f$table-&gt;rememberToken(); rn \u202f\u202f$table-&gt;timestamps(); rn});\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Ex\u00e9cutez les migrations pour cr\u00e9er la table\u00a0: <code>php artisan migrate<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le fichier <code>routes\/web.php<\/code>, mettez \u00e0 jour les routes d&rsquo;authentification pour inclure la v\u00e9rification des emails\u00a0: <\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    Auth::routes([&#039;verify&#039; =&gt; true]);\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Dans Laravel 11, les routes sont d\u00e9finies dans le fichier <code>bootstrap\/app.php<\/code>. Assurez-vous que vos routes web sont incluses et ajoutez les routes de v\u00e9rification\u00a0:\u00a0<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    -&gt;withRouting( rnrn    web: __DIR__.&#039;\/..\/routes\/web.php&#039;, rnrn    commands: __DIR__.&#039;\/..\/routes\/console.php&#039;, rnrn    health: &#039;\/up&#039;, rnrn) \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, dans votre fichier <code>routes\/web.php<\/code>, ajoutez\u00a0:\u00a0<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"0\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Pour voir toutes les routes disponibles pour votre application, vous pouvez ex\u00e9cuter <code>php artisan route:list<\/code>.\u202fC&rsquo;est \u00e0 peu pr\u00e8s tout ce que nous devons faire du c\u00f4t\u00e9 de Laravel pour v\u00e9rifier les emails. Cependant, si vous essayez maintenant, cela ne fonctionnera pas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4150\" width=\"1024\" height=\"505\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-blogpost.png\" alt=\"Laravel code\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-blogpost.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-blogpost-300x148.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-blogpost-768x379.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Avant de pouvoir envoyer des emails depuis notre serveur PHP, nous devons configurer un pilote d&#8217;email dans Laravel. Vous pouvez tout de m\u00eame v\u00e9rifier en utilisant <a href=\"https:\/\/laravel.com\/docs\/11.x\/artisan\" target=\"_tabs\" rel=\"noopener noreferrer\">tinker<\/a> pour voir qu&rsquo;un utilisateur a \u00e9t\u00e9 cr\u00e9\u00e9 avec un email_verified_at d\u00e9fini sur null.<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"0\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                    <\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">Place \u00e0 Mailgun<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun offre la possibilit\u00e9 d&rsquo;envoyer des emails via un serveur SMTP ou via son API. Dans ce tutoriel, nous allons envoyer des emails via l&rsquo;API de Mailgun. C&rsquo;est plus rapide, cela \u00e9volue mieux et n\u00e9cessite moins de travail \u00e0 configurer que le SMTP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4151\" width=\"1500\" height=\"377\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/SMTP_Flowchart_copy.png\" alt=\"Mailgun API call\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/SMTP_Flowchart_copy.png 1500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/SMTP_Flowchart_copy-300x75.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/SMTP_Flowchart_copy-768x193.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/SMTP_Flowchart_copy-1024x257.png 1024w\" sizes=\"(max-width: 1500px) 100vw, 1500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nous allons envoyer des appels API. Pour cela, nous avons besoin de <a href=\"https:\/\/github.com\/guzzle\/guzzle\" target=\"_tabs\" rel=\"noopener noreferrer\">Guzzle<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>$ composer require guzzlehttp\/guzzle<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour que notre application puisse envoyer des emails\u00a0: nous avons besoin d&rsquo;un nom de domaine h\u00e9berg\u00e9. J&rsquo;ai un nom de domaine que j&rsquo;ai achet\u00e9 via <a href=\"https:\/\/domains.google.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Google Domains<\/a> pour environ 12\u00a0$ par an. Le site (<a href=\"https:\/\/employbl.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">https:\/\/employbl.com\/<\/a>) est h\u00e9berg\u00e9 sur <a href=\"https:\/\/forge.laravel.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Laravel Forge<\/a> moyennant un abonnement mensuel. Pour le d\u00e9ployer, j&rsquo;ai suivi le <a href=\"https:\/\/laracasts.com\/series\/learn-laravel-forge\" target=\"_tabs\" rel=\"noopener noreferrer\">cours Laracasts, Learn Laravel Forge<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans ce cours, j&rsquo;ai configur\u00e9 mon application Laravel pour qu&rsquo;elle fonctionne sur des droplets Digital Ocean. Au cours de ce processus, j&rsquo;ai configur\u00e9 mon nom de domaine Google pour qu&rsquo;il pointe vers Digital Ocean.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois que vous avez cr\u00e9\u00e9 un compte Mailgun, vous devrez v\u00e9rifier votre domaine, ce qui prend environ 24\u00a0heures. Pour ce faire, nous devons ajouter des enregistrements TXT, CNAME et MX. \u202fSi les enregistrements MX pointent d\u00e9j\u00e0 vers un fournisseur de messagerie, vous pouvez configurer un sous-domaine \u00e0 la place. Pour trouver ces enregistrements, acc\u00e9dez au domaine dans votre compte Mailgun et consultez <a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/quickstart-sending.html#how-to-start-sending-email\" target=\"_tabs\" rel=\"noopener noreferrer\">V\u00e9rification du domaine et DNS<\/a>. <b>Une fois que vous avez un domaine Mailgun fonctionnel, acc\u00e9dez au tableau de bord pour trouver votre cl\u00e9 API et mettez \u00e0 jour le fichier .env en cons\u00e9quence.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>MAIL_DRIVER=mailgun MAILGUN_DOMAIN=mg.VOTRE_DOMAINE.com MAILGUN_SECRET=VOTRE_CLE_ICI<\/code><\/p>\n\n\n    <div data-content-type=\"longform\"  class=\"callout text-body-color px-5 py-6 px-md-6 px-lg-7 py-md-7 longform-spacings rounded-lg bg-light\" data-theme=\"light\">\r\n\r\n        <div class=\"content-body\"> En savoir plus\u00a0: Laravel est pass\u00e9 \u00e0 un cycle de versionnement annuel. D\u00e9sormais sur la version\u00a010, vous pouvez vous attendre \u00e0 des correctifs le <b>6 ao\u00fbt 2024<\/b> et \u00e0 des correctifs de s\u00e9curit\u00e9 d&rsquo;ici le <b>14 f\u00e9vrier 2025<\/b>. <a href='https:\/\/laravel-news.com\/laravel-10'>Consulter les notes de version de Laravel 10.<\/a><\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">V\u00e9rifier que cela fonctionne<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois l&rsquo;envoi d&#8217;emails configur\u00e9, apr\u00e8s s&rsquo;\u00eatre inscrit, l&rsquo;utilisateur verra une landing page lui demandant de v\u00e9rifier ses emails. Cette page peut \u00eatre modifi\u00e9e dans <b>resources\/views\/auth\/verify.blade.php<\/b>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4152\" width=\"1024\" height=\"247\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel2.png\" alt=\"Verify your email Laravel\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel2.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel2-300x72.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel2-768x185.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Cela enverra un v\u00e9ritable email \u00e0 l&rsquo;adresse que vous avez fournie. Le mod\u00e8le de cet email se trouve dans <b>IlluminateAuthNotificationsVerifyEmail.php<\/b>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4153\" width=\"512\" height=\"254\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/example-laravel.png\" alt=\"Laravel verify email address link\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/example-laravel.png 512w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/example-laravel-300x149.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si nous ne voulons pas que nos emails de v\u00e9rification affichent \u00ab\u00a0Regards\u00a0\u00bb ou le texte ci-dessus, nous devons alors les personnaliser. Vous pouvez publier les mod\u00e8les par d\u00e9faut en utilisant les commandes de publication ci-dessous\u00a0: <\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    $ php artisan vendor:publish --tag=laravel-notificationsrn$ php artisan vendor:publish --tag=laravel-mail\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9crivez ensuite les nouveaux param\u00e8tres par d\u00e9faut dans <b>resources\/views\/vendor\/notifications\/email.blade.php<\/b>. Si vous avez d&rsquo;autres modifications \u00e0 apporter, vous pouvez r\u00e9impl\u00e9menter la notification en ajoutant une nouvelle m\u00e9thode <code>sendEmailVerificationNotification<\/code> \u00e0 votre mod\u00e8le d&rsquo;utilisateur, qui renvoie une notification personnalis\u00e9e que vous cr\u00e9ez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois que l&rsquo;utilisateur a cliqu\u00e9 sur le lien de v\u00e9rification de l&rsquo;adresse email, il sera redirig\u00e9 vers son tableau de bord et pourra se connecter sans probl\u00e8me.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4154\" width=\"1024\" height=\"325\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-success.png\" alt=\"Laravel login\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-success.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-success-300x95.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/laravel-success-768x244.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Cela devrait vous permettre de d\u00e9marrer\u00a0! La partie la plus difficile pour moi a \u00e9t\u00e9 de configurer le serveur de messagerie et Mailgun. Une fois votre domaine v\u00e9rifi\u00e9 et Mailgun enti\u00e8rement configur\u00e9, la partie concernant Laravel s&rsquo;av\u00e8re tr\u00e8s simple. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avez-vous r\u00e9ussi \u00e0 tout mettre en place\u00a0? Quelqu&rsquo;un utilise-t-il d\u00e9j\u00e0 cette fonctionnalit\u00e9 en production\u00a0? Contactez-moi <a href=\"https:\/\/twitter.com\/Connor11528\" target=\"_tabs\" rel=\"noopener noreferrer\">sur Twitter<\/a> ou laissez un commentaire ci-dessous.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ressources<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai trouv\u00e9 ces tutoriels tr\u00e8s utiles, en plus des liens ci-dessus.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/medium.com\/@sgobinda007\/send-email-from-your-node-js-application-by-using-mailgun-api-services-bbedc7c45c19\" target=\"_tabs\" rel=\"noopener noreferrer\">Envoyer un email depuis votre application Node.js en utilisant les services de l&rsquo;API de Mailgun<\/a> Gobinda Thakur<\/li>\n\n\n\n<li><a href=\"https:\/\/medium.com\/@DCzajkowski\/testing-laravel-authentication-flow-573ea0a96318\" target=\"_tabs\" rel=\"noopener noreferrer\">Tester le flux d&rsquo;authentification Laravel<\/a> Dariusz Czajkowski<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Vous voulez plus d&rsquo;articles comme celui-ci de la part de Mailgun\u00a0?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Connor Leech, notre auteur invit\u00e9, est ing\u00e9nieur logiciel chez Stitch Labs.\u202fVous pouvez le contacter <a href=\"mailto:connor@stitchlabs.com\" target=\"_tabs\" rel=\"noopener noreferrer\">via son email<\/a>. Pour plus de guides et d&rsquo;articles de r\u00e9solution de probl\u00e8mes, inscrivez-vous \u00e0 notre newsletter afin de ne manquer aucun conseil de nos invit\u00e9s experts et de nos passionn\u00e9s d&#8217;email.<\/p>\n\n\n\r\n    <aside data-content-type=\"longform\"  class=\"banner-block longform-spacings rounded-lg shadow-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 bg-light\" data-theme=\"dark\" aria-labelledby=\"banner-block-block_e8de2a12a3afdf3394eb804422f5ff7a\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                S&rsquo;inscrire            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_e8de2a12a3afdf3394eb804422f5ff7a\">\r\n                Lancez-vous, c&rsquo;est facile ! Et c&rsquo;est gratuit.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">D\u00e9couvrez ce que vous pouvez accomplir avec la meilleure plateforme de livraison d\u2019emails au monde.<\/div>\r\n                            <\/div>\r\n        \r\n        <div class=\"text-start mt-5\"><a href=\"https:\/\/signup.mailgun.com\/new\/signup\"  class=\"btn btn-secondary\" >Get started<\/a><\/div>\r\n    <\/aside>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>Int\u00e9grez la version 11.x de Laravel \u00e0 Mailgun pour ajouter la capacit\u00e9 de v\u00e9rifier les emails des utilisateurs. Poursuivez votre lecture pour d\u00e9couvrir notre guide \u00e9tape par \u00e9tape.<\/p>\n","protected":false},"author":13,"featured_media":4074,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[20],"class_list":["post-20420","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-email"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cr\u00e9er l&#039;authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.\" \/>\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.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cr\u00e9er l&#039;authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/\",\"name\":\"Cr\u00e9er l'authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"datePublished\":\"2026-09-14T23:34:40+00:00\",\"description\":\"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/email\\\/creer-authentification-emails-laravel-mailgun-digital-ocean\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cr\u00e9er l\u2019authentification des emails dans Laravel 11 avec Mailgun et Digital Ocean\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cr\u00e9er l'authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun","description":"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.","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.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/","og_locale":"fr_FR","og_type":"article","og_title":"Cr\u00e9er l'authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun","og_description":"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.","og_url":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/","url":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/","name":"Cr\u00e9er l'authentification des emails Laravel 11.x avec Mailgun et Digital Ocean - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","datePublished":"2026-09-14T23:34:40+00:00","description":"La version 11 de Laravel prend en charge la v\u00e9rification des emails des utilisateurs. D\u00e9couvrez comment fonctionne cette int\u00e9gration gr\u00e2ce au guide \u00e9tape par \u00e9tape sur Mailgun et Digital Ocean.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/fr\/blog\/email\/creer-authentification-emails-laravel-mailgun-digital-ocean\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/fr\/blog\/"},{"@type":"ListItem","position":3,"name":"Cr\u00e9er l\u2019authentification des emails dans Laravel 11 avec Mailgun et Digital Ocean"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/fr\/#website","url":"https:\/\/www.mailgun.com\/fr\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !","publisher":{"@id":"https:\/\/www.mailgun.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/fr\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/20420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/20420\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media\/4074"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media?parent=20420"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog_category?post=20420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}