{"id":27232,"date":"2021-05-10T14:08:00","date_gmt":"2021-05-10T11:08:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27232"},"modified":"2021-10-18T04:15:35","modified_gmt":"2021-10-18T01:15:35","slug":"como-enviar-e-mail-de-ativacao-no-laravel-apos-o-cadastro-do-usuario","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-enviar-e-mail-de-ativacao-no-laravel-apos-o-cadastro-do-usuario\/","title":{"rendered":"Como enviar e-mail de ativa\u00e7\u00e3o no Laravel ap\u00f3s o cadastro do usu\u00e1rio"},"content":{"rendered":"<p>O Laravel vem com fluxo de autentica\u00e7\u00e3o quando o instalamos. Inclui login, registro, fluxo de esquecimento de senha no pr\u00f3prio n\u00facleo do Laravel. Usando esse fluxo integrado, ao se registrar, o usu\u00e1rio obt\u00e9m acesso direto ao sistema. Mas e se algu\u00e9m quiser enviar um c\u00f3digo de verifica\u00e7\u00e3o de e-mail antes de permitir que um usu\u00e1rio use o aplicativo. Neste artigo, estudamos como enviar e-mail de ativa\u00e7\u00e3o no Laravel.<\/p>\n<p>Enviaremos um email de confirma\u00e7\u00e3o ao usu\u00e1rio. Quando um usu\u00e1rio clica no link de verifica\u00e7\u00e3o enviado por e-mail, somente ele poder\u00e1 usar o sistema.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Para come\u00e7ar, primeiro instalamos o pacote em nosso projeto Laravel. Abra o terminal no diret\u00f3rio raiz do seu projeto e execute o comando:<\/p>\n<pre><code>composer require beyondcode\/laravel-confirm-email<\/code><\/pre>\n<p>Este <a href=\"https:\/\/github.com\/beyondcode\/laravel-confirm-email\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pacote<\/a> que adiciona verifica\u00e7\u00e3o de e-mail aos seus projetos Laravel.<\/p>\n<p>Depois de instalar o pacote, devemos executar um comando para publicar a migra\u00e7\u00e3o e o arquivo de configura\u00e7\u00e3o.<\/p>\n<pre><code>php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider<\/code><\/pre>\n<p>Na <code>users<\/code>tabela, este pacote adiciona duas colunas <code>confirmed_at<\/code>e <code>confirmation_code<\/code>. Vamos executar o comando de migra\u00e7\u00e3o para adicionar essas colunas.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<h3>Configura\u00e7\u00e3o<\/h3>\n<p>Para enviar e-mail de ativa\u00e7\u00e3o precisamos substituir <code>AuthenticatesUsers<\/code>, <code>RegistersUsers<\/code>e <code>SendsPasswordResetEmails<\/code>traits com os fornecidos por este pacote.<\/p>\n<p>Abra os arquivos abaixo em seu editor primeiro e ent\u00e3o substituiremos as caracter\u00edsticas uma por uma.<\/p>\n<ul>\n<li>appHttpControllersAuthLoginController.php<\/li>\n<li>appHttpControllersAuthRegisterController.php<\/li>\n<li>appHttpControllersAuthForgotPasswordController.php<\/li>\n<\/ul>\n<p>Dos arquivos acima, substitua as declara\u00e7\u00f5es<\/p>\n<ul>\n<li><code>use IlluminateFoundationAuthAuthenticatesUsers;<\/code><\/li>\n<li><code>use IlluminateFoundationAuthRegistersUsers;<\/code><\/li>\n<li><code>use IlluminateFoundationAuthSendsPasswordResetEmails;<\/code><\/li>\n<\/ul>\n<p>Com<\/p>\n<ul>\n<li><code>use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;<\/code><\/li>\n<li><code>use BeyondCodeEmailConfirmationTraitsRegistersUsers;<\/code><\/li>\n<li><code>use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;<\/code><\/li>\n<\/ul>\n<p>Como estamos enviando um link de verifica\u00e7\u00e3o em um e-mail de ativa\u00e7\u00e3o, adicione as duas rotas a seguir em um <code>routes\/web.php<\/code>arquivo.<\/p>\n<pre><code>Route::name('auth.resend_confirmation')-&gt;get('\/register\/confirm\/resend', 'AuthRegisterController@resendConfirmation');\nRoute::name('auth.confirm')-&gt;get('\/register\/confirm\/{confirmation_code}', 'AuthRegisterController@confirm');<\/code><\/pre>\n<p>Quando um usu\u00e1rio clica no link de verifica\u00e7\u00e3o, este pacote adiciona mensagens flash que cont\u00eam mensagens de erro \/ informa\u00e7\u00f5es para os usu\u00e1rios. Para mostrar esta mensagem flash aos usu\u00e1rios, adicione o c\u00f3digo abaixo no <code>resourcesviewsauthlogin.blade.php<\/code>.<\/p>\n<pre><code>.....\n&lt;div class=\"panel-body\"&gt;\n\u00a0\u00a0\u00a0\u00a0@if (session('confirmation'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-info\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! session('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n\u00a0\n\u00a0\u00a0\u00a0\u00a0@if ($errors-&gt;has('confirmation') &gt; 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-danger\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! $errors-&gt;first('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n.....<\/code><\/pre>\n<p>Tamb\u00e9m precisamos adicionar o c\u00f3digo abaixo no <code>resourcesviewsauthpasswordsemail.blade.php<\/code><\/p>\n<pre><code>.....\n&lt;div class=\"panel-body\"&gt;\n\u00a0\u00a0\u00a0\u00a0@if ($errors-&gt;has('confirmation') &gt; 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-danger\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! $errors-&gt;first('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n.....<\/code><\/pre>\n<p>\u00c9 isso! Agora, quando um usu\u00e1rio fizer o registro em seu site, ele receber\u00e1 um e-mail de ativa\u00e7\u00e3o para confirmar sua conta. Por favor, compartilhe suas id\u00e9ias na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-o-laravel-passport-para-autenticacao-rest-api\/\" title=\"Como usar o Laravel Passport para autentica\u00e7\u00e3o REST API\">Como usar o Laravel Passport para autentica\u00e7\u00e3o REST API<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-de-arquivo-para-s3-usando-o-sistema-de-arquivos-laravel\/\" title=\"Como fazer upload de arquivo para S3 usando o sistema de arquivos Laravel\">Como fazer upload de arquivo para S3 usando o sistema de arquivos Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, mostramos como enviar e-mail de ativa\u00e7\u00e3o no Laraver quando o usu\u00e1rio faz um cadastro. Por padr\u00e3o, o Laravel automaticamente logou o usu\u00e1rio ao se inscrever<\/p>\n","protected":false},"author":1,"featured_media":22164,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[502],"tags":[848],"class_list":["post-27232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27232"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27232\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/22164"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}