{"id":19952,"date":"2026-09-14T18:33:23","date_gmt":"2026-09-14T18:33:23","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/enviar-email-laravel-mailgun\/"},"modified":"2026-09-14T18:33:23","modified_gmt":"2026-09-14T18:33:23","slug":"enviar-email-laravel-mailgun","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/","title":{"rendered":"C\u00f3mo enviar emails usando Laravel y Mailgun"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ya est\u00e9s enviando emails para restablecer contrase\u00f1as, confirmaciones de pedido o newsletters de marketing, una entrega de emails fiable es crucial para cualquier aplicaci\u00f3n de Laravel. Al combinar el elegante sistema de env\u00edo de Laravel con la potente API de email de Mailgun, puedes garantizar que tus mensajes importantes lleguen a la bandeja de entrada.\u00a0 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta gu\u00eda, repasaremos el proceso de integraci\u00f3n de Mailgun con Laravel, desde la configuraci\u00f3n inicial hasta el env\u00edo de tu primer email de bienvenida automatizado. Tambi\u00e9n aprender\u00e1s sobre funciones avanzadas como el seguimiento de emails, los adjuntos y la correcta gesti\u00f3n de errores.\u00a0<\/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-4683\"><p class=\"h5 m-0\" id=\"toc-title-4683\">\u00cdndice<\/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=\"#requisitos-previos\">Requisitos previos<\/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=\"#configuracion-de-tu-cuenta-de-mailgun\">Configuraci\u00f3n de tu cuenta de Mailgun\u00a0<\/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=\"#configuracion-de-laravel-para-mailgun\">Configuraci\u00f3n de Laravel para Mailgun\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#creacion-de-tu-proyecto-de-laravel\">Creaci\u00f3n de tu proyecto de Laravel<\/a><a class=\"scrollme link-body-color\" href=\"#instalacion-de-paquetes-requeridos\">Instalaci\u00f3n de paquetes requeridos\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#prueba-de-la-configuracion\">Prueba de la configuraci\u00f3n\u00a0<\/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=\"#creacion-de-emails-de-bienvenida\">Creaci\u00f3n de emails de bienvenida\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#creacion-de-la-plantilla-de-email\">Creaci\u00f3n de la plantilla de email\u00a0<\/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=\"#prueba-la-aplicacion\">Prueba la aplicaci\u00f3n\u00a0<\/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=\"#funciones-avanzadas-de-mailgun-en-laravel\">Funciones avanzadas de Mailgun en Laravel<\/a><a class=\"scrollme link-body-color\" href=\"#como-anadir-adjuntos-a-los-emails\">C\u00f3mo a\u00f1adir adjuntos a los emails\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#gestion-del-seguimiento-de-emails-con-webhooks-de-mailgun\">Gesti\u00f3n del seguimiento de emails con webhooks de Mailgun\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#uso-de-etiquetas\">Uso de etiquetas\u00a0<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#gestion-de-errores-y-depuracion\">Gesti\u00f3n de errores y depuraci\u00f3n\u00a0<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">08<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#solucion-de-problemas-y-depuracion\">Soluci\u00f3n de problemas y depuraci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#como-deberias-supervisar-la-entrega\">\u00bfC\u00f3mo deber\u00edas supervisar la entrega?\u00a0<\/a><a class=\"scrollme link-body-color\" href=\"#cuales-son-las-mejores-practicas-en-cuanto-a-la-gestion-de-errores\">\u00bfCu\u00e1les son las mejores pr\u00e1cticas en cuanto a la gesti\u00f3n de errores?\u00a0<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">09<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#y-ahora-que\">\u00bfY ahora qu\u00e9?<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Requisitos previos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de entrar de lleno en la integraci\u00f3n, aseg\u00farate de tener:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conocimientos b\u00e1sicos de Laravel y PHP\u00a0<\/li>\n\n\n\n<li>PHP y Composer instalados a nivel local\u00a0<\/li>\n\n\n\n<li>Node.js y npm instalados a nivel local\u00a0<\/li>\n\n\n\n<li>Un editor de c\u00f3digo (usaremos Visual Studio Code)\u00a0<\/li>\n\n\n\n<li>Una cuenta de Mailgun (te ayudaremos a configurarla)\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n de tu cuenta de Mailgun\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Empecemos por preparar tus credenciales de Mailgun. Si a\u00fan no lo has hecho, crea una cuenta gratuita en nuestra p\u00e1gina de registro. Tras el registro, deber\u00e1s activar tu cuenta a trav\u00e9s del email de confirmaci\u00f3n que te enviaremos.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4056\" width=\"1767\" height=\"970\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen.png\" alt=\"creating a free Mailgun account\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen.png 1767w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen-300x165.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen-768x422.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen-1024x562.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Mailgun_start_screen-1536x843.png 1536w\" sizes=\"(max-width: 1767px) 100vw, 1767px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Desde tu panel de control de Mailgun, recopila estos tres elementos esenciales: \u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>1. Tu dominio de Mailgun:<\/b>\u202fVe a \u201cSend &gt; Sending &gt; Domains\u201d y copia tu nombre de dominio.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4057\" width=\"1915\" height=\"993\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur.png\" alt=\"Getting the Mailgun domain\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur.png 1915w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur-300x156.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur-768x398.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur-1024x531.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/FNA5HYB_-_Imgur-1536x796.png 1536w\" sizes=\"(max-width: 1915px) 100vw, 1915px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><b>2. Tu clave de API<\/b>:\u202fHaz clic en el men\u00fa desplegable de tu cuenta, selecciona \u201cSeguridad de la API\u201d (\u201cAPI Security\u201d) y crea una nueva clave de API.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4058\" width=\"1919\" height=\"995\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur.png\" alt=\"Getting the API key\u00a0\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur.png 1919w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur-300x156.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur-768x398.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur-1024x531.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/CrP0K6P_-_Imgur-1536x796.png 1536w\" sizes=\"(max-width: 1919px) 100vw, 1919px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\nEn la p\u00e1gina de claves de API, crea una nueva clave de API haciendo clic en el bot\u00f3n \u201cA\u00f1adir nueva clave\u201d y proporcionando la descripci\u00f3n en la ventana modal \u201cNueva clave de API\u201d. Aseg\u00farate de copiar el valor de tu clave de API, ya que solo podr\u00e1s verla una vez:\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4061\" width=\"1920\" height=\"993\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur.png\" alt=\"New key details\u00a0\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur.png 1920w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur-300x155.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur-768x397.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur-1024x530.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kYcOFHo_-_Imgur-1536x794.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><b>3. Tu regi\u00f3n:<\/b>\u202fComprueba la barra de navegaci\u00f3n superior para confirmar si est\u00e1s en la regi\u00f3n de la UE o de EE. UU.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4063\" width=\"1922\" height=\"993\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur.png\" alt=\"Confirming the region\u00a0\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur.png 1922w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur-300x155.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur-768x397.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur-1024x529.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/k6liFQ6_-_Imgur-1536x794.png 1536w\" sizes=\"(max-width: 1922px) 100vw, 1922px\" \/><\/figure>\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\"> \u00bfUsas un dominio sandbox para hacer pruebas? A\u00f1ade hasta cinco destinatarios autorizados a trav\u00e9s de la p\u00e1gina de informaci\u00f3n general (\u201cOverview\u201d) de tu dominio para garantizar la entrega de los emails de prueba.<\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">4. <b>Dominio sandbox<\/b>: Por \u00faltimo, dado que usar\u00e1s tu dominio sandbox en esta gu\u00eda, aseg\u00farate de configurar los destinatarios autorizados. Esto garantiza que los emails enviados desde tu dominio sandbox solo se entreguen a los destinatarios que hayas autorizado expl\u00edcitamente, ya que los dominios sandbox est\u00e1n limitados a las pruebas y restringidos a destinatarios espec\u00edficos.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes hacerlo yendo a la p\u00e1gina de informaci\u00f3n general (\u201cOverview\u201d) de tu dominio, introduciendo la direcci\u00f3n de email y haciendo clic en \u201cGuardar destinatario\u201d (\u201cSave Recipient\u201d):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4066\" width=\"1913\" height=\"966\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur.png\" alt=\"Adding authorized recipient\u00a0\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur.png 1913w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur-300x151.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur-768x388.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur-1024x517.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/fAD2rga_-_Imgur-1536x776.png 1536w\" sizes=\"(max-width: 1913px) 100vw, 1913px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n de Laravel para Mailgun\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando tengas todas las credenciales necesarias del panel de control de Mailgun, ser\u00e1 el momento de configurar Laravel para utilizar Mailgun. Aqu\u00ed, crear\u00e1s una aplicaci\u00f3n de Laravel y actualizar\u00e1s las variables de entorno relacionadas con el email con los valores que has obtenido antes. Luego enviar\u00e1s un email de bienvenida a los nuevos usuarios.\u00a0\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para lograrlo, usar\u00e1s <a href=\"https:\/\/laravel.com\/docs\/11.x\/starter-kits#laravel-breeze\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>el kit de inicio de Laravel Breeze<\/u><\/a> para configurar la autenticaci\u00f3n en tu aplicaci\u00f3n y usar <a href=\"https:\/\/laravel.com\/api\/9.x\/Illuminate\/Support\/Facades\/Mail.html\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>la fachada Mail<\/u><\/a> para a\u00f1adir la funcionalidad de enviar un email a un usuario nuevo cuando se registre.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para crear una aplicaci\u00f3n de Laravel, ejecuta el siguiente comando en tu terminal:\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creaci\u00f3n de tu proyecto de Laravel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b><\/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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    composer create-project laravel\/laravel laravel-mailgun-demo rncd laravel-mailgun-demo rncomposer require laravel\/breeze --dev rnphp artisan breeze:install \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\">Cuando se te pida, usa la siguiente informaci\u00f3n:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfQu\u00e9 stack de Breeze quieres instalar? Blade con Alpine\u00a0<\/li>\n\n\n\n<li>\u00bfQuieres habilitar el modo oscuro? No\u00a0<\/li>\n\n\n\n<li>\u00bfQu\u00e9 framework de pruebas prefieres? PHPUnit\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que todo est\u00e9 instalado, aseg\u00farate de compilar los recursos de frontend de tu aplicaci\u00f3n:\u00a0\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b>\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    npm install\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\"><b>Configuraci\u00f3n del email<\/b><br>\\nAhora que tienes una aplicaci\u00f3n de Laravel funcional con la autenticaci\u00f3n configurada, puedes actualizar las variables de entorno relacionadas con el email. Abre tu archivo <code>.env<\/code> y comenta <code>MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD,<\/code> y <code>MAIL_ENCRYPTION<\/code>.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sustituye el valor de <code>MAIL_MAILER<\/code> por <code>mailgun<\/code> para configurar la aplicaci\u00f3n para usar el controlador de Mailgun, y sustituye el valor de <code>MAIL_FROM_ADDRESS<\/code> por tu direcci\u00f3n de email.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, justo debajo de las variables de entorno relacionadas con el email, a\u00f1ade las siguientes variables de entorno espec\u00edficas de Mailgun y aseg\u00farate de sustituir los marcadores de posici\u00f3n con los valores reales que has obtenido en el panel de control de Mailgun:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    MAILGUN_DOMAIN=&lt;YOUR-MAILGUN-DOMAIN&gt; rnMAILGUN_SECRET=&lt;YOUR-MAILGUN-API-KEY&gt; rnMAILGUN_ENDPOINT=api.mailgun.net \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\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\"> Si tu regi\u00f3n en el panel de control de Mailgun es UE, establece el valor de MAILGUN_ENDPOINT en api.eu.mailgun.net.<\/div>\r\n    <\/div>\r\n\n\n\n<h3 class=\"wp-block-heading\">Instalaci\u00f3n de paquetes requeridos\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para utilizar el controlador de Mailgun para enviar emails, debes instalar el transport Symfony Mailgun Mailer:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b>\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    composer require symfony\/mailgun-mailer symfony\/http-client\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\"><b>Actualizaci\u00f3n de archivos de configuraci\u00f3n<\/b><br>\nUna vez instalado el transport, abre el archivo de configuraci\u00f3n config\/mail.php y a\u00f1ade la siguiente configuraci\u00f3n al array de mailers para configurar Mailgun como uno de los sistemas disponibles:<\/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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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 rnCopy rn&#039;mailgun&#039; =&gt; [ rn   &#039;transport&#039; =&gt; &#039;mailgun&#039; 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\">A continuaci\u00f3n, a\u00f1ade el siguiente c\u00f3digo al archivo config\/services.php para configurar Mailgun:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    &#039;mailgun&#039; =&gt; [ rn   &#039;domain&#039; =&gt; env(&#039;MAILGUN_DOMAIN&#039;), rn   &#039;secret&#039; =&gt; env(&#039;MAILGUN_SECRET&#039;), rn   &#039;endpoint&#039; =&gt; env(&#039;MAILGUN_ENDPOINT&#039;, &#039;api.mailgun.net&#039;), rn   &#039;scheme&#039; =&gt; &#039;https&#039;, rn], \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<h3 class=\"wp-block-heading\">Prueba de la configuraci\u00f3n\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este c\u00f3digo garantiza que tu aplicaci\u00f3n de Laravel tenga las credenciales y ajustes necesarios para comunicarse con la API de Mailgun y enviar emails.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Llegados a este punto, la configuraci\u00f3n necesaria se ha completado. Ahora, puedes comprobar que todo est\u00e1 configurado correctamente utilizando <a href=\"https:\/\/laravel.com\/docs\/11.x\/artisan#tinker\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>Tinker<\/u><\/a>.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para iniciar el entorno Tinker, ejecuta el siguiente comando en tu terminal:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b><\/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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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 tinker\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\">Para enviar un email de prueba, ejecuta el siguiente comando en el terminal de Tinker:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    Mail::raw(&#039;This email confirms that everything was set up correctly!&#039;, function ($message) { rn   $message-&gt;to(&#039;your@email.com&#039;) rn   -&gt;subject(&#039;Testing Laravel + Mailgun&#039;); 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\">Aseg\u00farate de sustituir <code><\/code> por tu direcci\u00f3n de email y comprueba que se haya a\u00f1adido como destinatario autorizado.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0Este comando utiliza el m\u00e9todo raw de la fachada Mail para enviar un email a la direcci\u00f3n proporcionada.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora, revisa tu bandeja de entrada para asegurarte de que has recibido un email:\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4071\" width=\"1528\" height=\"349\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/received-email.png\" alt=\"Received email\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/received-email.png 1528w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/received-email-300x69.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/received-email-768x175.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/received-email-1024x234.png 1024w\" sizes=\"(max-width: 1528px) 100vw, 1528px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n de emails de bienvenida\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para simplificar el proceso de env\u00edo de emails, Laravel proporciona clases \u201cmailable\u201d que te permiten definir y estructurar el contenido de tu email. Las clases \u201cmailable\u201d facilitan la personalizaci\u00f3n del asunto, el dise\u00f1o y los datos pasados a la vista del email. Aqu\u00ed crear\u00e1s una clase \u201cmailable\u201d que utilizar\u00e1s para enviar un email de bienvenida a los nuevos usuarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para crear la clase \u201cmailable\u201d, ejecuta el siguiente comando en tu terminal:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b>\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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 make:mail WelcomeMessage\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\">Este comando crea una clase \u201cmailable\u201d en el archivo <code>app\/Mail\/WelcomeMessage.php <\/code>.\u00a0En la clase \u201cmailable\u201d, deber\u00e1s aceptar algunos de los datos que se pasan cuando se la llama. Puedes hacerlo a trav\u00e9s del m\u00e9todo <code>__construct<\/code>. Modifica este m\u00e9todo tal y como se muestra a continuaci\u00f3n:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    public function __construct( rn   protected User $user, 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\">A continuaci\u00f3n, en el m\u00e9todo <code>envelope<\/code>, puedes configurar la direcci\u00f3n del remitente y el asunto del email. En este ejemplo, solo vas a configurar el asunto del email, puesto que usas una direcci\u00f3n de remitente global en el archivo <code>config\/mail.php<\/code>. Modifica el m\u00e9todo <code>envelope<\/code> de esta manera:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    public function envelope(): Envelope rn{ rn   return new Envelope( rn       subject: &#039;Welcome to Our Platform&#039;, rn   ); 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\">A continuaci\u00f3n, en el m\u00e9todo <code>content<\/code>, debes definir la vista que se usar\u00e1 para renderizar el contenido del email y pasar el nombre del usuario con el par\u00e1metro <code>with<\/code>. Modifica el m\u00e9todo <code>content<\/code> de la siguiente manera:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    public function content(): Content rn{ rn   return new Content( rn       view: &#039;emails.welcome&#039;, rn       with: [ rn           &#039;name&#039; =&gt; $this-&gt;user-&gt;name, rn       ], rn   ); 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\">Recuerda a\u00f1adir esta declaraci\u00f3n \u201cuse\u201d al archivo:\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<h3 class=\"wp-block-heading\">Creaci\u00f3n de la plantilla de email\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora tienes que crear la vista que has definido previamente. Crea un archivo nuevo llamado emails\/welcome.blade.php en la carpeta resources\/views y a\u00f1ade el siguiente contenido:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>HTML<\/b><\/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                                HTML                            <\/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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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-markup\">\r\n                                <code id=\"code_0_content\" class=\"language-markup\">\r\n\r\n                                    &lt;!DOCTYPE html&gt; rn&lt;html&gt; rn    &lt;head&gt;               rn        &lt;title&gt;Welcome to Our Platform&lt;\/title&gt;               rn        &lt;style&gt; rn            body { rn                font-family: Arial, sans-serif; rn                background-color: #f4f4f4; rn                margin: 0; rn                padding: 20px; rn            } rnrn            .email-container { rn                background-color: #ffffff; rn                padding: 20px; rn                max-width: 600px; rn                margin: auto; rn                border-radius: 8px; rn                box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); rn            } rnrn            h1 { rn                color: #333333; rn                font-size: 24px; rn                margin-bottom: 20px; rn            } rnrn            p { rn                color: #555555; rn                font-size: 16px; rn                line-height: 1.5; rn            } rnrn            .footer { rn                margin-top: 20px; rn                font-size: 14px; rn                color: #777777; rn                text-align: center; rn            }                                           rn        &lt;\/style&gt;           rnrn    &lt;\/head&gt;       rn    &lt;body&gt;               rn        &lt;div class=&quot;email-container&quot;&gt;                       rn            &lt;h1&gt;Hello, {{ $name }}!&lt;\/h1&gt;                       rn            &lt;p&gt; rn                Thank you for signing up on our platform. We&#039;re excited to have rn                you on board.             rn            &lt;\/p&gt;                       rn            &lt;p&gt; rn                Feel free to explore our features, and let us know if you need rn                any assistance.             rn            &lt;\/p&gt;                       rn            &lt;p&gt;Best regards,&lt;br \/&gt;{{ config(&#039;app.name&#039;) }} Team&lt;\/p&gt;                       rnrn            &lt;div class=&quot;footer&quot;&gt;                               rn                &lt;p&gt; rn                    &copy; {{ date(&#039;Y&#039;) }} {{ config(&#039;app.name&#039;) }}. All rights reserved.         rn                &lt;\/p&gt;                           rn            &lt;\/div&gt;                   rn        &lt;\/div&gt;           rn    &lt;\/body&gt; rn&lt;\/html&gt; \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\"><b>Implementaci\u00f3n del email de bienvenida<\/b>\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo anterior renderiza un mensaje de bienvenida sencillo con el nombre del usuario.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, tienes que configurar el controlador que gestiona el registro de usuarios para que env\u00ede un email a los nuevos usuarios. En esta aplicaci\u00f3n, el controlador que gestiona el registro de usuarios se encuentra en el archivo <code>app\/Http\/Controllers\/Auth\/RegisteredUserController.php<\/code>. Abre este archivo y en el m\u00e9todo <code>store<\/code> a\u00f1ade este c\u00f3digo justo antes de la declaraci\u00f3n <code>return<\/code>:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    Mail::to($user-&gt;email)-&gt;send(new WelcomeMessage($user)); \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\">Este c\u00f3digo utiliza la fachada Mail para enviar un email al usuario especificado mediante la clase \u201cmailable\u201d WelcomeMessage.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recuerda a\u00f1adir estas declaraciones \u201cuse\u201d al mismo archivo:\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<h2 class=\"wp-block-heading\">Prueba la aplicaci\u00f3n\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora toca comprobar si todo funciona como est\u00e1 previsto. Para ello, ejecuta el servidor de Laravel mediante el siguiente comando:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bash<\/b>\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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 serve\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\">Ve a <a href=\"http:\/\/localhost:8000\/register\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>http:\/\/localhost:8000\/register<\/u><\/a> en tu navegador, rellena todos los datos y haz clic en el bot\u00f3n REGISTER:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4072\" width=\"1168\" height=\"780\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Kk5guDc_-_Imgur.png\" alt=\"Registration page \" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Kk5guDc_-_Imgur.png 1168w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Kk5guDc_-_Imgur-300x200.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Kk5guDc_-_Imgur-768x513.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/Kk5guDc_-_Imgur-1024x684.png 1024w\" sizes=\"(max-width: 1168px) 100vw, 1168px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00edas recibir un email de bienvenida en tu bandeja de entrada:\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4076\" width=\"1521\" height=\"604\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/dzVNQtU_-_Imgur.png\" alt=\"Welcome email\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/dzVNQtU_-_Imgur.png 1521w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/dzVNQtU_-_Imgur-300x119.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/dzVNQtU_-_Imgur-768x305.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/dzVNQtU_-_Imgur-1024x407.png 1024w\" sizes=\"(max-width: 1521px) 100vw, 1521px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Esto confirma que todo funciona como est\u00e1 previsto.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Funciones avanzadas de Mailgun en Laravel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al integrar Mailgun con Laravel, tienes acceso a funciones m\u00e1s avanzadas que pueden mejorar tus capacidades de email m\u00e1s all\u00e1 del simple env\u00edo de mensajes b\u00e1sicos. Echemos un vistazo a algunas de estas funciones.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo a\u00f1adir adjuntos a los emails\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun te permite a\u00f1adir f\u00e1cilmente archivos adjuntos a tus emails, lo cual es un requisito com\u00fan a la hora de enviar facturas, informes u otros documentos. Puedes a\u00f1adir un adjunto a los emails con el m\u00e9todo attachments en tu clase \u201cmailable\u201d:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    public function attachments(): array rn{ rn\u202f\u202f\u202freturn [ rn\u202f\u202f\u202f\u202f\u202f\u202f\u202fAttachment::fromPath(&#039;\/path\/to\/file&#039;) rn\u202f\u202f\u202f\u202f\u202f\u202f\u202f-&gt;as(&#039;fileName.pdf&#039;) rn\u202f\u202f\u202f\u202f\u202f\u202f\u202f-&gt;withMime(&#039;application\/pdf&#039;), rn\u202f\u202f\u202f]; 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\">Tambi\u00e9n puedes usar archivos adjuntos integrados (inline) en tus plantillas de email:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>HTML<\/b>\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                                HTML                            <\/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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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-markup\">\r\n                                <code id=\"code_0_content\" class=\"language-markup\">\r\n\r\n                                    &lt;body&gt; rn\u202f\u202f\u202fSample image: rn\u202f\u202f\u202f&lt;img src=&quot;{{ $message-&gt;embed($pathToImage) }}&quot; \/&gt; rn&lt;\/body&gt; \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<h3 class=\"wp-block-heading\">Gesti\u00f3n del seguimiento de emails con webhooks de Mailgun\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun ofrece <a href=\"https:\/\/documentation.mailgun.com\/docs\/mailgun\/user-manual\/tracking-messages\/#tracking-messages\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>funciones de seguimiento de email<\/u><\/a> que te permiten hacer un seguimiento de m\u00e9tricas importantes, como cu\u00e1ndo abren los usuarios tus emails y hacen clic en los enlaces incluidos. Esto es muy \u00fatil para comprobar que los usuarios reciben tus emails e interact\u00faan con ellos.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para implementar el seguimiento, es necesario <a href=\"https:\/\/documentation.mailgun.com\/docs\/mailgun\/user-manual\/tracking-messages\/#webhooks\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>configurar un webhook de Mailgun<\/u><\/a> y una ruta dedicada en tu aplicaci\u00f3n de Laravel que recibir\u00e1 las llamadas del webhook desde Mailgun. A continuaci\u00f3n, puedes utilizar los datos recibidos del webhook para hacer un seguimiento de los emails enviados desde tu aplicaci\u00f3n.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uso de etiquetas\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun es compatible con el uso de <a href=\"https:\/\/documentation.mailgun.com\/docs\/mailgun\/user-manual\/tracking-messages\/#tagging\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>etiquetas<\/u><\/a> que te ayudan a agrupar los emails con fines de seguimiento e informes. Puedes a\u00f1adir etiquetas a tu email a trav\u00e9s del m\u00e9todo envelope en la clase \u201cmailable\u201d:\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=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\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                                    \u202f public function envelope(): Envelope rn\u202f\u202f\u202f{ rn\u202f\u202f\u202f\u202f\u202f\u202freturn new Envelope( rn\u202f\u202f\u202f\u202f\u202f\u202fsubject: &#039;Welcome to Our Platform&#039;, rn\u202f\u202f\u202f\u202f\u202f\u202ftags: [&#039;welcome&#039;], rn\u202f\u202f\u202f\u202f\u202f\u202f); rn\u202f\u202f\u202f}\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\">Gesti\u00f3n de errores y depuraci\u00f3n\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al integrar Laravel con Mailgun, es importante gestionar los errores y depurar los problemas de forma eficaz para garantizar la fiabilidad. Algunos de los errores m\u00e1s comunes que te encontrar\u00e1s durante el proceso de integraci\u00f3n son:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>No autorizado (Unauthorized)<\/b>: si los valores MAILGUN_DOMAIN, MAILGUN_SECRET y MAILGUN_ENDPOINT definidos en tu archivo .env son incorrectos, Mailgun no podr\u00e1 autenticar tus solicitudes. Te aconsejamos volver a comprobar estos valores para asegurarte de que son correctos.\u00a0<\/li>\n\n\n\n<li><b>Dominio no verificado (Domain not verified)<\/b>: en el entorno de producci\u00f3n, si intentas enviar emails desde un dominio de Mailgun que no ha sido verificado, la solicitud fallar\u00e1. Es necesario que <a href=\"https:\/\/help.mailgun.com\/hc\/en-us\/articles\/360026833053-Domain-Verification-Setup-Guide\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>verifiques tu dominio<\/u><\/a> a\u00f1adiendo los registros DNS necesarios (SPF y DKIM).\u00a0<\/li>\n\n\n\n<li><b>El dominio no tiene permiso para realizar env\u00edos (Domain is not allowed to send)<\/b>: al utilizar dominios sandbox, solo puedes enviar emails a <a href=\"https:\/\/help.mailgun.com\/hc\/en-us\/articles\/217531258-Authorized-Recipients\" target=\"_tabs\" rel=\"noopener noreferrer\"><u>destinatarios autorizados<\/u><\/a>. Debes asegurarte de que tus destinatarios est\u00e1n en la lista de permitidos cuando hagas pruebas con un dominio sandbox.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando se produce un error durante el proceso de env\u00edo del email, normalmente se registra en el archivo de registro predeterminado de Laravel, ubicado en storage\/logs\/laravel.log. Si deseas registrar manualmente errores espec\u00edficos relacionados con Mailgun, debes englobar la l\u00f3gica de env\u00edo de emails en un bloque try&#8230;catch para que te ayude a identificar problemas r\u00e1pidamente:\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\">Adem\u00e1s, Mailgun proporciona un panel de control intuitivo en el que puedes hacer un seguimiento y solucionar los problemas de entrega de emails. El panel de control de Mailgun incluye funciones clave como estas:<br>\n<b>Registros de email (Email logs)<\/b>: Mailgun conserva registros detallados de toda la actividad de los emails, lo que incluye entregas correctas, rebotes, aperturas, clics y fallos. Puedes aplicar filtros y buscar en estos registros para identificar cualquier error o fallo de entrega.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4078\" width=\"1916\" height=\"965\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur.png\" alt=\"Email logs\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur.png 1916w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur-300x151.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur-768x387.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur-1024x516.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/xZkAwdb_-_Imgur-1536x774.png 1536w\" sizes=\"(max-width: 1916px) 100vw, 1916px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Mensajes de error (Error messages)<\/b>: para los emails fallidos, Mailgun registra mensajes de error detallados que pueden ayudarte a entender por qu\u00e9 no se entreg\u00f3 el email (como en el caso de problemas de DNS o destinatarios no v\u00e1lidos).\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4081\" width=\"1916\" height=\"963\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur.png\" alt=\"Detailed error messages\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur.png 1916w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur-300x151.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur-768x386.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur-1024x515.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/8owh7rO_-_Imgur-1536x772.png 1536w\" sizes=\"(max-width: 1916px) 100vw, 1916px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes acceder a estos mensajes de error y registros en la p\u00e1gina Logs (Registros), que encontrar\u00e1s yendo a Send &gt; Sending &gt; Logs en el panel de control de Mailgun.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Soluci\u00f3n de problemas y depuraci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfCu\u00e1les son los problemas m\u00e1s comunes y las soluciones al enviar emails con Mailgun y Laravel?\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>1. Errores de autenticaci\u00f3n<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comprueba tus credenciales de Mailgun.<\/li>\n\n\n\n<li>Verifica que el punto de conexi\u00f3n coincida con tu regi\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><b>2. Verificaci\u00f3n de dominio<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aseg\u00farate de que los registros DNS est\u00e9n configurados correctamente.<\/li>\n\n\n\n<li>Verifica los ajustes de SPF y DKIM.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><b>3. Limitaciones de sandbox<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confirma la autorizaci\u00f3n de los destinatarios.<\/li>\n\n\n\n<li>Comprueba los l\u00edmites de env\u00edo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo deber\u00edas supervisar la entrega?\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Accede a registros detallados a trav\u00e9s de tu panel de control de Mailgun:\u00a0<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ve a Send &gt; Sending &gt; Logs.\u00a0<\/li>\n\n\n\n<li>Revisa el estado de la entrega.<\/li>\n\n\n\n<li>Comprueba los informes de rebotes.<\/li>\n\n\n\n<li>Supervisa las m\u00e9tricas de interacci\u00f3n.\u00a0<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfCu\u00e1les son las mejores pr\u00e1cticas en cuanto a la gesti\u00f3n de errores?\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Implementa una correcta gesti\u00f3n de errores:\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\"><b>Mejores pr\u00e1cticas<\/b>\u00a0Para garantizar una entregabilidad \u00f3ptima:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>1. Separa tus tipos de email<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utiliza dominios diferentes para los emails transaccionales y de marketing.<\/li>\n\n\n\n<li>Implementa un proceso de encolado adecuado para los env\u00edos masivos.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><b>2. Supervisa tus m\u00e9tricas<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Haz un seguimiento de las tasas de rebote.<\/li>\n\n\n\n<li>Supervisa las quejas por spam.<\/li>\n\n\n\n<li>Analiza las tasas de apertura.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><b>3. Mant\u00e9n la higiene de listas<\/b>\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Limpieza peri\u00f3dica de direcciones no v\u00e1lidas.<\/li>\n\n\n\n<li>Elimina a los suscriptores que no interact\u00faan.<\/li>\n\n\n\n<li>Gestiona los rebotes adecuadamente.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfY ahora qu\u00e9?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ya dominas los aspectos b\u00e1sicos de la integraci\u00f3n de Mailgun con Laravel. \u00bfQuieres pasar al siguiente nivel? Explora:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configuraci\u00f3n de plantillas de email\u00a0<\/li>\n\n\n\n<li>Implementaci\u00f3n de contenido din\u00e1mico\u00a0<\/li>\n\n\n\n<li>Funciones de seguimiento avanzadas\u00a0<\/li>\n\n\n\n<li>Capacidades de test A\/B\u00a0<\/li>\n<\/ul>\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\"> \u00bfNecesitas informaci\u00f3n m\u00e1s detallada? Consulta nuestra\u202f<a href='https:\/\/documentation.mailgun.com\/'>documentaci\u00f3n completa de la API<\/a>.\u00a0<\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfTodo listo para enviar emails con total confianza? Crea una cuenta de Mailgun y empieza a realizar env\u00edos.\u00a0<\/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_1d72dfe564f7766687358cab7ba67e1f\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                Reg\u00edstrate            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_1d72dfe564f7766687358cab7ba67e1f\">\r\n                Empezar es facil\u00edsimo. Y gratis.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">Descubre todo lo que puedes lograr con la mejor plataforma de entrega de emails del mundo.<\/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>Laravel ofrece potentes funciones de email que combinan a la perfecci\u00f3n con el servicio fiable de entrega de emails de Mailgun. Aprende a configurar Laravel para enviar emails a trav\u00e9s de Mailgun, crear emails de bienvenida para nuevos usuarios e implementar funciones avanzadas para una mejor entregabilidad.<\/p>\n","protected":false},"author":5,"featured_media":3952,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[19],"class_list":["post-19952","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-dev-life"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.\" \/>\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\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/\" \/>\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-Dev-Life.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=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/\",\"name\":\"C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"datePublished\":\"2026-09-14T18:33:23+00:00\",\"description\":\"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/dev-life\\\/enviar-email-laravel-mailgun\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo enviar emails usando Laravel y Mailgun\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#\\\/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\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun","description":"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.","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\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun","og_description":"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.","og_url":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/","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-Dev-Life.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/","url":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/","name":"C\u00f3mo enviar emails con Laravel y Mailgun: gu\u00eda completa - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","datePublished":"2026-09-14T18:33:23+00:00","description":"Aprende a integrar Mailgun con Laravel para enviar emails transaccionales, notificaciones de usuario y mucho m\u00e1s. Obt\u00e9n instrucciones paso a paso y ejemplos de c\u00f3digo.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/es\/blog\/dev-life\/enviar-email-laravel-mailgun\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/es\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/es\/blog\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo enviar emails usando Laravel y Mailgun"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/es\/#website","url":"https:\/\/www.mailgun.com\/es\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!","publisher":{"@id":"https:\/\/www.mailgun.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/es\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/#\/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\/es\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/19952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/users\/5"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/19952\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media\/3952"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media?parent=19952"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog_category?post=19952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}