{"id":3208,"date":"2024-12-13T09:37:45","date_gmt":"2024-12-13T12:37:45","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=3208"},"modified":"2025-12-08T18:40:22","modified_gmt":"2025-12-08T21:40:22","slug":"laravel-mail","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/","title":{"rendered":"Laravel Mail"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\">O sistema de <strong>Mail<\/strong> do <strong>Laravel<\/strong> fornece uma API limpa e fluida para o envio de e-mails, suportando diversos servi\u00e7os de entrega e formatos. Ele abstrai a complexidade do envio, permitindo que os desenvolvedores se concentrem na cria\u00e7\u00e3o do conte\u00fado atrav\u00e9s de <em>Views<\/em> Blade. \u00c9 a ferramenta padr\u00e3o para lidar com notifica\u00e7\u00f5es, confirma\u00e7\u00f5es, newsletters e outras comunica\u00e7\u00f5es por e-mail.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. \u2699\ufe0f Configura\u00e7\u00e3o e Drivers<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O Laravel Mail suporta v\u00e1rios <em>backends<\/em> de envio atrav\u00e9s de <strong>Drivers<\/strong>. A configura\u00e7\u00e3o principal \u00e9 feita no arquivo <strong><code>config\/mail.php<\/code><\/strong> e utiliza vari\u00e1veis de ambiente do <code>.env<\/code>.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Drivers Comuns<\/h3>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Driver<\/strong><\/td><td><strong>Uso<\/strong><\/td><td><strong>Configura\u00e7\u00e3o<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong><code>smtp<\/code><\/strong><\/td><td>Servidor SMTP tradicional (Mailtrap, GMail).<\/td><td><code>MAIL_HOST<\/code>, <code>MAIL_PORT<\/code>, <code>MAIL_USERNAME<\/code>, <code>MAIL_PASSWORD<\/code><\/td><\/tr><tr><td><strong><code>mailgun<\/code><\/strong><\/td><td>Servi\u00e7o de entrega de e-mail dedicado.<\/td><td><code>MAILGUN_DOMAIN<\/code>, <code>MAILGUN_SECRET<\/code><\/td><\/tr><tr><td><strong><code>ses<\/code><\/strong><\/td><td>Amazon Simple Email Service.<\/td><td>Configura\u00e7\u00f5es AWS (Regi\u00e3o, Chave, etc.).<\/td><\/tr><tr><td><strong><code>log<\/code><\/strong><\/td><td>Modo de desenvolvimento: E-mails s\u00e3o escritos no arquivo de log.<\/td><td>\u00datil para testes b\u00e1sicos.<\/td><\/tr><tr><td><strong><code>array<\/code><\/strong><\/td><td>Modo de desenvolvimento: E-mails s\u00e3o armazenados em um <em>array<\/em> na mem\u00f3ria.<\/td><td>Ideal para testes unit\u00e1rios.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Configura\u00e7\u00e3o Essencial<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No <code>.env<\/code>, voc\u00ea define as credenciais e o remetente padr\u00e3o:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">.ENV<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MAIL_MAILER=smtp\nMAIL_HOST=smtp.mailtrap.io # Ou seu servidor SMTP\/servi\u00e7o\nMAIL_PORT=2525\nMAIL_USERNAME=...\nMAIL_PASSWORD=...\nMAIL_FROM_ADDRESS=\"no-reply@app.com\"\nMAIL_FROM_NAME=\"${APP_NAME}\"\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. \u270d\ufe0f Escrevendo um Mailable<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Um <strong>Mailable<\/strong> \u00e9 uma classe que encapsula a constru\u00e7\u00e3o de um e-mail: o conte\u00fado, o remetente, o assunto e os anexos.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Cria\u00e7\u00e3o via Artisan<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:mail WelcomeEmail\n# Cria o arquivo em app\/Mail\/WelcomeEmail.php\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Defini\u00e7\u00e3o do Conte\u00fado (<code>build()<\/code>)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O m\u00e9todo <code>build()<\/code> \u00e9 onde voc\u00ea define a estrutura do e-mail.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ app\/Mail\/WelcomeEmail.php\nnamespace App\\Mail;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Mail\\Mailable;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass WelcomeEmail extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    public $user; \/\/ Propriedade p\u00fablica injetada na View\n\n    public function __construct(User $user)\n    {\n        $this-&gt;user = $user;\n    }\n\n    \/**\n     * Constr\u00f3i a mensagem.\n     *\/\n    public function build()\n    {\n        return $this-&gt;view('emails.welcome') \/\/ Define a View Blade\n                    -&gt;subject('Seja Bem-vindo(a) \u00e0 nossa plataforma!')\n                    -&gt;from('admin@app.com', 'Administra\u00e7\u00e3o');\n    }\n}\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C. A View Blade<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A View (<code>resources\/views\/emails\/welcome.blade.php<\/code>) tem acesso \u00e0s propriedades p\u00fablicas do <em>Mailable<\/em> (ex: <code>$user<\/code>).<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Blade<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;h1&gt;Ol\u00e1, {{ $user-&gt;name }}!&lt;\/h1&gt;\n&lt;p&gt;Obrigado por se juntar a n\u00f3s. Seu cadastro foi conclu\u00eddo com sucesso.&lt;\/p&gt;\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. \ud83d\ude80 Enviando (Dispatching) E-mails<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O envio \u00e9 realizado atrav\u00e9s da <strong>Facade <code>Mail<\/code><\/strong>.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Envio Imediato (S\u00edncrono)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Illuminate\\Support\\Facades\\Mail;\nuse App\\Mail\\WelcomeEmail;\n\n\/\/ Instancia o Mailable\n$email = new WelcomeEmail($user);\n\n\/\/ Envia o e-mail imediatamente para o destinat\u00e1rio\nMail::to($user-&gt;email)-&gt;send($email); \n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Envio em Fila (Ass\u00edncrono)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para tarefas demoradas como o envio de e-mail, \u00e9 crucial coloc\u00e1-las em fila para evitar que a requisi\u00e7\u00e3o do usu\u00e1rio seja bloqueada. O <em>Mailable<\/em> deve usar o <em>trait<\/em> <code>Queueable<\/code>.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Enviando para a fila\nMail::to($user-&gt;email)-&gt;queue(new WelcomeEmail($user)); \n\/\/ OU usando o helper dispatch\nWelcomeEmail::dispatch($user)-&gt;to($user-&gt;email);\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Nota:<\/strong> Para que isso funcione, o sistema de <strong>Filas (Queues)<\/strong> deve estar configurado e o <strong>Worker<\/strong> em execu\u00e7\u00e3o (<code>php artisan queue:work<\/code>).<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. \ud83e\uddea Desenvolvimento e Depura\u00e7\u00e3o<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">A. Mailtrap (Desenvolvimento Local)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Servi\u00e7os como o <strong>Mailtrap<\/strong> atuam como um SMTP falso que captura todos os e-mails enviados em desenvolvimento. Voc\u00ea configura o <code>MAIL_HOST<\/code> e <code>MAIL_PORT<\/code> do Mailtrap no seu <code>.env<\/code> para inspecionar e-mails sem envi\u00e1-los de fato.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Pr\u00e9-visualiza\u00e7\u00e3o de Mailables<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Voc\u00ea pode visualizar a renderiza\u00e7\u00e3o final de qualquer <em>Mailable<\/em> diretamente no navegador (ou terminal) sem envi\u00e1-lo.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ No seu arquivo de rotas (routes\/web.php)\nuse App\\Mail\\WelcomeEmail;\nuse App\\Models\\User; \/\/ Use um modelo de usu\u00e1rio real ou fake\n\nRoute::get('\/mail-preview', function () {\n    $user = User::first(); \/\/ Pega um usu\u00e1rio existente para o preview\n    return new WelcomeEmail($user); \/\/ O Laravel renderiza o Mailable\n});\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. \u2728 Personaliza\u00e7\u00f5es Avan\u00e7adas<\/h2>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Funcionalidade<\/strong><\/td><td><strong>Implementa\u00e7\u00e3o no build()<\/strong><\/td><td><strong>Exemplo<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Anexos<\/strong><\/td><td><code>$this-&gt;attach('\/caminho\/local\/file.pdf')<\/code><\/td><td>Anexa um arquivo do disco local.<\/td><\/tr><tr><td><strong>Anexos Brutos<\/strong><\/td><td><code>$this-&gt;attachData($data, 'file.txt')<\/code><\/td><td>Anexa dados brutos (ex: PDF gerado em mem\u00f3ria).<\/td><\/tr><tr><td><strong>Tags<\/strong><\/td><td><code>$this-&gt;tag('order-confirmation')<\/code><\/td><td>Adiciona tags para servi\u00e7os como Mailgun\/SES (rastreamento e filtragem).<\/td><\/tr><tr><td><strong>Prioridade<\/strong><\/td><td><code>$this-&gt;priority('low')<\/code><\/td><td>Define a prioridade do e-mail.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">\u2705 Conclus\u00e3o Laravel Mail<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Laravel Mail<\/strong>: O sistema de e-mails do Laravel simplifica a comunica\u00e7\u00e3o com o usu\u00e1rio atrav\u00e9s de classes <strong>Mailables<\/strong> bem definidas e <em>Views<\/em> Blade. Ao utilizar o m\u00e9todo <strong><code>queue()<\/code><\/strong> para envio ass\u00edncrono e servi\u00e7os de teste como o Mailtrap em desenvolvimento, voc\u00ea garante que sua aplica\u00e7\u00e3o seja <strong>r\u00e1pida<\/strong>, <strong>robusta<\/strong> e que os e-mails sejam entregues de forma confi\u00e1vel.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um in\u00edcio. Vamos entender quais s\u00e3o os conhecimentos b\u00e1sicos necess\u00e1rios para aproveitar ao m\u00e1ximo este poderoso framework. Para iniciar seus estudos no Laravel, voc\u00ea precisar\u00e1 dominar as seguintes tecnologias:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/html\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp\" alt=\"HTML\" class=\"wp-image-600\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">HTML<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/css\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp\" alt=\"CSS\" class=\"wp-image-702\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CSS<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/javascript\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp\" alt=\"Javascript\" class=\"wp-image-804\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">JavaScript<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/sql\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/php\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>O sistema de Mail do Laravel fornece uma API limpa e fluida para o envio&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1642,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-3208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","wpcat-18-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Laravel Mail - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel Mail - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-13T12:37:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-08T21:40:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Laravel Mail\",\"datePublished\":\"2024-12-13T12:37:45+00:00\",\"dateModified\":\"2025-12-08T21:40:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/\"},\"wordCount\":576,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Laravel.webp\",\"articleSection\":[\"Laravel\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/\",\"name\":\"Laravel Mail - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Laravel.webp\",\"datePublished\":\"2024-12-13T12:37:45+00:00\",\"dateModified\":\"2025-12-08T21:40:22+00:00\",\"description\":\"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Laravel.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Laravel.webp\",\"width\":758,\"height\":426,\"caption\":\"Laravel\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/laravel-mail\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Mail\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de experi\u00eancia em tecnologia, atuo como Engenheiro de Computa\u00e7\u00e3o, desenvolvedor de sistemas, escritor e produtor de conte\u00fado. Minha trajet\u00f3ria passa pelo ensino t\u00e9cnico, desenvolvimento web, arquitetura de sistemas e cria\u00e7\u00e3o de solu\u00e7\u00f5es voltadas para a ind\u00fastria de jogos digitais. Acredito que conhecimento deve ser acess\u00edvel e aplic\u00e1vel. Essa vis\u00e3o resultou em uma biblioteca com mais de 550 artigos gratuitos, abrangendo temas como desenvolvimento web, infraestrutura, intelig\u00eancia artificial, Game Design, mercado de jogos e carreiras na ind\u00fastria de games. Sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\", uma obra dedicada ao planejamento e documenta\u00e7\u00e3o de jogos digitais, e criador do GameMeTRix, uma plataforma que auxilia desenvolvedores na an\u00e1lise e valida\u00e7\u00e3o de ideias para jogos. Meu trabalho busca conectar planejamento, tecnologia e mercado para ajudar criadores a transformar boas ideias em projetos vi\u00e1veis. Atualmente concentro meus estudos e projetos no desenvolvimento de jogos web, na cria\u00e7\u00e3o de metodologias para valida\u00e7\u00e3o de produtos digitais e na produ\u00e7\u00e3o de conte\u00fado t\u00e9cnico voltado ao ecossistema de jogos. Meu compromisso \u00e9 unir teoria, pr\u00e1tica e experi\u00eancia de mercado para contribuir com o crescimento de novos desenvolvedores e profissionais da \u00e1rea.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Laravel Mail - BLOG THIAGO ROSSI","description":"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..","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:\/\/thiagorossi.com.br\/blog\/laravel-mail\/","og_locale":"pt_BR","og_type":"article","og_title":"Laravel Mail - BLOG THIAGO ROSSI","og_description":"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..","og_url":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2024-12-13T12:37:45+00:00","article_modified_time":"2025-12-08T21:40:22+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp","type":"image\/webp"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Laravel Mail","datePublished":"2024-12-13T12:37:45+00:00","dateModified":"2025-12-08T21:40:22+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/"},"wordCount":576,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp","articleSection":["Laravel"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/","url":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/","name":"Laravel Mail - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp","datePublished":"2024-12-13T12:37:45+00:00","dateModified":"2025-12-08T21:40:22+00:00","description":"Laravel Mail: Neste artigo, vamos explorar em detalhes as principais funcionalidades do sistema de e-mails do Laravel, desde a configura\u00e7\u00e3o..","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp","width":758,"height":426,"caption":"Laravel"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/laravel-mail\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel Mail"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de experi\u00eancia em tecnologia, atuo como Engenheiro de Computa\u00e7\u00e3o, desenvolvedor de sistemas, escritor e produtor de conte\u00fado. Minha trajet\u00f3ria passa pelo ensino t\u00e9cnico, desenvolvimento web, arquitetura de sistemas e cria\u00e7\u00e3o de solu\u00e7\u00f5es voltadas para a ind\u00fastria de jogos digitais. Acredito que conhecimento deve ser acess\u00edvel e aplic\u00e1vel. Essa vis\u00e3o resultou em uma biblioteca com mais de 550 artigos gratuitos, abrangendo temas como desenvolvimento web, infraestrutura, intelig\u00eancia artificial, Game Design, mercado de jogos e carreiras na ind\u00fastria de games. Sou autor do livro \"GDD \u2013 O Guia Definitivo\", uma obra dedicada ao planejamento e documenta\u00e7\u00e3o de jogos digitais, e criador do GameMeTRix, uma plataforma que auxilia desenvolvedores na an\u00e1lise e valida\u00e7\u00e3o de ideias para jogos. Meu trabalho busca conectar planejamento, tecnologia e mercado para ajudar criadores a transformar boas ideias em projetos vi\u00e1veis. Atualmente concentro meus estudos e projetos no desenvolvimento de jogos web, na cria\u00e7\u00e3o de metodologias para valida\u00e7\u00e3o de produtos digitais e na produ\u00e7\u00e3o de conte\u00fado t\u00e9cnico voltado ao ecossistema de jogos. Meu compromisso \u00e9 unir teoria, pr\u00e1tica e experi\u00eancia de mercado para contribuir com o crescimento de novos desenvolvedores e profissionais da \u00e1rea.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/3208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3208"}],"version-history":[{"count":4,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/3208\/revisions"}],"predecessor-version":[{"id":5214,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/3208\/revisions\/5214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/1642"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}