{"id":27662,"date":"2021-05-21T15:08:00","date_gmt":"2021-05-21T12:08:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27662"},"modified":"2021-10-18T04:10:37","modified_gmt":"2021-10-18T01:10:37","slug":"enviar-e-mail-usando-o-servidor-smtp-do-gmail-a-partir-de-script-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/enviar-e-mail-usando-o-servidor-smtp-do-gmail-a-partir-de-script-php\/","title":{"rendered":"Enviar e-mail usando o servidor SMTP do Gmail a partir de script PHP"},"content":{"rendered":"<p>O e-mail desempenha um papel importante no site. Todo site geralmente precisa enviar e-mails aos usu\u00e1rios. Esses e-mails podem ser enviados da p\u00e1gina de contato, newsletter, formul\u00e1rio de inscri\u00e7\u00e3o, etc.<\/p>\n<p>PHP fornece uma <code>mail()<\/code>fun\u00e7\u00e3o que \u00e9 usada para enviar um e-mail. Mas existem limita\u00e7\u00f5es ao usar o <code>mail()<\/code>m\u00e9todo. Voc\u00ea n\u00e3o pode enviar e-mail de um servidor de desenvolvimento local. Outra desvantagem \u00e9 que h\u00e1 uma grande possibilidade de seu e-mail acabar em um Spam.<\/p>\n<p>Na maioria dos casos, o <code>mail()<\/code>m\u00e9todo ainda n\u00e3o envia um e-mail. Isso pode ser devido \u00e0 configura\u00e7\u00e3o incorreta do servidor ou outra coisa.<\/p>\n<p>Para sair desses problemas ou limita\u00e7\u00f5es, pode-se usar o servidor SMTP para enviar os e-mails.<\/p>\n<p>Neste artigo, estudamos como usar o PHPMailer e o servidor SMTP do Gmail para enviar e-mails.<\/p>\n<h3>Instala\u00e7\u00e3o<\/h3>\n<p>Voc\u00ea primeiro precisa instalar a biblioteca <a href=\"https:\/\/github.com\/PHPMailer\/PHPMailer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMailer<\/a> em seu projeto. A maneira recomendada de instalar uma biblioteca \u00e9 por meio do <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>.<\/p>\n<p>Abra o prompt de comando no diret\u00f3rio raiz do seu projeto e execute o comando abaixo.<\/p>\n<pre><code>composer require phpmailer\/phpmailer<\/code><\/pre>\n<p>Como estamos usando o SMTP do Gmail, voc\u00ea precisa alterar algumas configura\u00e7\u00f5es da sua conta do Google. Fa\u00e7a login em sua conta do Google e clique em Minha conta. Quando estiver na p\u00e1gina Minha conta, clique em Seguran\u00e7a. Role para baixo at\u00e9 a parte inferior e voc\u00ea encontrar\u00e1 as configura\u00e7\u00f5es de &#8216;Acesso de aplicativo menos seguro&#8217;. Defina-o como ON.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20527-6082002147f32.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20527-6082002147f32.png\" alt=\"Enviar e-mail usando o servidor SMTP do Gmail a partir de script PHP\" ><\/a><\/p>\n<p>Depois disso, precisamos escrever um c\u00f3digo que envia um e-mail usando a biblioteca PHPMailer e o servidor SMTP do Gmail.<\/p>\n<h3>Script PHP para enviar e-mail usando o servidor SMTP do Gmail<\/h3>\n<p>Abra seu arquivo PHP onde voc\u00ea precisa escrever um c\u00f3digo para e-mails. Por exemplo, estou assumindo que voc\u00ea tem um <code>sendemail.php<\/code>arquivo no diret\u00f3rio raiz.<\/p>\n<p><strong>sendemail.php<\/strong><\/p>\n<pre><code>&lt;?php\n\/\/Import PHPMailer classes into the global namespace\nuse PHPMailerPHPMailerPHPMailer;\nuse PHPMailerPHPMailerException;\n\u00a0\nrequire_once 'vendor\/autoload.php';\n\u00a0\n$mail = new PHPMailer(true);\n?&gt;<\/code><\/pre>\n<p>No c\u00f3digo acima, inclu\u00ed o ambiente da biblioteca PHPMailer no arquivo PHP.<\/p>\n<p>Em seguida, para enviar e-mails usando o PHPMailer, o usu\u00e1rio precisa passar o endere\u00e7o do servidor SMTP do Gmail, a porta SMTP do Gmail e a autentica\u00e7\u00e3o SMTP (que nada mais \u00e9 do que seu nome de usu\u00e1rio e senha de uma conta do Google).<\/p>\n<pre><code>$mail-&gt;isSMTP();\n$mail-&gt;Host = 'smtp.googlemail.com';\u00a0 \/\/gmail SMTP server\n$mail-&gt;SMTPAuth = true;\n$mail-&gt;Username = 'GMAIL_USERNAME';\u00a0\u00a0 \/\/username\n$mail-&gt;Password = 'GMAIL_PASSWORD';\u00a0\u00a0 \/\/password\n$mail-&gt;SMTPSecure = 'ssl';\n$mail-&gt;Port = 465;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/SMTP port<\/code><\/pre>\n<p>\u00c9 isso! Voc\u00ea concluiu a configura\u00e7\u00e3o. Agora, voc\u00ea est\u00e1 pronto para enviar um e-mail a um usu\u00e1rio.<\/p>\n<pre><code>$mail-&gt;setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');\n$mail-&gt;addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');\n\u00a0\n$mail-&gt;isHTML(true);\n\u00a0\n$mail-&gt;Subject = 'Email subject';\n$mail-&gt;Body\u00a0\u00a0\u00a0 = '&lt;b&gt;Email Body&lt;\/b&gt;';\n\u00a0\n$mail-&gt;send();\necho 'Message has been sent';<\/code><\/pre>\n<p>Substitua os marcadores de posi\u00e7\u00e3o por valores reais. Execute este arquivo em um navegador e seu e-mail deve ser enviado no endere\u00e7o de e-mail do destinat\u00e1rio.<\/p>\n<h3>Envio de anexos em um e-mail<\/h3>\n<p>Usando a biblioteca do PHPMailer, pode-se enviar um ou v\u00e1rios anexos em um e-mail. Tudo o que voc\u00ea precisa fazer \u00e9 passar um caminho de diret\u00f3rio de seus anexos para o m\u00e9todo da <code>addAttachment<\/code>seguinte maneira.<\/p>\n<pre><code>$mail-&gt;addAttachment(__DIR__. '\/attachment1.png');\n$mail-&gt;addAttachment(__DIR__. '\/attachment2.jpg');<\/code><\/pre>\n<p>Nosso c\u00f3digo final \u00e9 o seguinte.<\/p>\n<p><strong>sendemail.php<\/strong><\/p>\n<pre><code>&lt;?php\nuse PHPMailerPHPMailerPHPMailer;\nuse PHPMailerPHPMailerException;\n\u00a0\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"constants.php\";\n\u00a0\n$mail = new PHPMailer(true);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isSMTP();\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Host = 'smtp.googlemail.com';\u00a0 \/\/gmail SMTP server\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPAuth = true;\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Username = GMAIL_USERNAME;\u00a0\u00a0 \/\/username\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Password = GMAIL_PASSWORD;\u00a0\u00a0 \/\/password\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPSecure = 'ssl';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Port = 465;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/smtp port\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAttachment(__DIR__. '\/attachment1.png');\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAttachment(__DIR__. '\/attachment2.png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isHTML(true);\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Subject = 'Email Subject';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Body\u00a0\u00a0\u00a0 = '&lt;b&gt;Email Body&lt;\/b&gt;';\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;send();\n\u00a0\u00a0\u00a0\u00a0echo 'Message has been sent';\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo 'Message could not be sent. Mailer Error: '. $mail-&gt;ErrorInfo;\n}\n?&gt;<\/code><\/pre>\n<p>Espero que voc\u00ea entenda como enviar e-mail usando o servidor SMTP do Gmail a partir de um script PHP. Por favor, compartilhe seus pensamentos e sugest\u00f5es em um coment\u00e1rio abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/enviando-e-mail-via-servidor-smtp-do-gmail-no-laravel\/\" title=\"Enviando e-mail via servidor SMTP do Gmail no Laravel\">Enviando e-mail via servidor SMTP do Gmail no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/enviar-e-mail-usando-o-servidor-smtp-do-gmail-e-a-biblioteca-swift-mailer\/\" title=\"Enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer\">Enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/enviar-e-mail-usando-mailjet-alternativa-ao-servidor-smtp-do-gmail-em-php\/\" title=\"Enviar e-mail usando Mailjet em PHP\">Enviar e-mail usando Mailjet em PHP<\/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 tutorial, explicamos como enviar e-mail usando o servidor SMTP do Gmail a partir de PHP Script. Usando o SMTP, voc\u00ea pode at\u00e9 enviar e-mails do servidor local.<\/p>\n","protected":false},"author":1,"featured_media":21631,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-27662","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27662","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=27662"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27662\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21631"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}