A melhor forma de Enviar E-mail em PHP com PHPMailer

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ม.ค. 2025

ความคิดเห็น • 18

  • @alvarobernardi1
    @alvarobernardi1 4 หลายเดือนก่อน

    Primeiramente agradeço por compartilhar e por sua didática, muito fácil de se entender e o exemplo que foi dado, muito pertinente.
    Segundo, gostaria de uma ajuda, o exemplo que vc deu para mim funcionou perfeitamente, porém quando fui colocar uma configuração válida de email, esta dando problema.
    A configuração do meu email é do bol, porém quando tento enviar o email, ele não envia e da o seguinte erro depois de ficar 2 min parado
    Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\htdocs\login2\PHPMailer\src\SMTP.php on line 1271
    Vamos ao meu ambiente, estou usando o Xampp V3.3.0 e não sei se tem algo haver , más o phpmailer quando instalei ( através do comando do composer ) ele não veio com o autoload.php.
    Tentei reinstalar o composer e deu o mesmo problema, então desinstalei o composer e copiei toda a pasta do phpmailer e coloquei em meu projeto e as únicas linhas a mais são essas
    require 'PHPMailer/src/Exception.php';
    require 'PHPMailer/src/PHPMailer.php';
    require 'PHPMailer/src/SMTP.php';
    Todas as demais configurações estão iguais as suas e tem uma linha adicional para poder exibir todo debug do envio de email.
    $mail->SMTPDebug = 1;
    Na tentativa de ajustar a configuração da criptografia do ssl que o bol pede, cheguei a usar o
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    Más não funcionou, pois da o erro
    2024-08-25 13:24:58 SMTP ERROR: Failed to connect to server: (0)
    SMTP Error: Could not connect to SMTP host. Failed to connect to server
    Erro de email : SMTP Error: Could not connect to SMTP host. Failed to connect to serverSMTP server error: Failed to connect to server
    Cheguei a usar também o SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS e troquei a porta para 587, porém também não funcionou.
    Tirando a linha da criptografia é quando ele fica parado e a mensagem de erro que coloquei logo no início.
    email.bol.uol.com.br/paginas-de-ajuda/sobre/configuracoes/imap-pop/configuracoes-imappop1.jhtm
    Peguei a configuração do envio de email através do link acima
    Na configuração de envio
    //Recipients
    $mail->setFrom("$usuario_email", "Usuário Principal");
    $mail->addAddress("$email", "$nome"); //Add a recipient
    Está sendo colocado emails válidos, e no setfrom é o meu email de autenticação
    Será que poderia me dar uma ajuda nesse caso, pesquisando na net não achei nenhuma solução para o meu problema, desde já agradeço

    • @fabiodavel
      @fabiodavel  4 หลายเดือนก่อน

      Oi @alvarobernardi1, obrigado pelo seu comentário.
      Então. Minha sugestão é mudar de servidor. hehe.
      Esse erro Maximum execution time, significa que sua programação não está conseguindo conectar ao serviço de e-mail do bol para após isso fazer o envio de e-mail. A experiencia que tenho com o bol não é boa porque ele tem uma politica de e-mail com muitas limitações e regras.
      Minha sugestão é usar um host de e-mail de um domínio que não use e-mail gratuito.
      Realize novos testes e me conte como foi a solução deste problema.

  • @rogerfsp
    @rogerfsp 4 หลายเดือนก่อน

    Olá, funciona, mas o e-mail chega como spam. Vi numa documentação que entre outros detalhes, é necessário implementar SPF, DKIM e DMARC no domínio. Por favor, analise e retorne. Obrigado!

    • @fabiodavel
      @fabiodavel  4 หลายเดือนก่อน +1

      Oi @rogerfsp. Isso mesmo. Para um envio saudável de e-mail tem que ter todos esses itens configurados. Mas isso já é padrão em todos os servidores de e-mail. Porque se não tiver configurado até os e-mails corporativos vão cair na caixa de spam. Obrigado pela observação

  • @AndreLuiz-pp4tl
    @AndreLuiz-pp4tl 11 หลายเดือนก่อน +1

    Eu empaquei logo no inicio na parte do copia e coloca o composer require phpmailer/phpmailer, pq assim que eu coloco o comando da esse erro composer : O termo 'composer' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável. Verifique a
    grafia do nome ou, se um caminho tiver sido incluído, veja se o caminho está correto e tente novamente.
    No linha:1 caractere:1
    + composer require phpmailer/phpmailer
    + ~~~~~~~~
    + CategoryInfo : ObjectNotFound: (composer:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    • @matheusteles4212
      @matheusteles4212 11 หลายเดือนก่อน +1

      É necessário instalar o composer para resolver esse erro.

    • @fabiodavel
      @fabiodavel  10 หลายเดือนก่อน

      Oi @AndreLuiz-pp4tl conseguiu avançar? Aparentemente você não tem o composer instalado. Forte abraço e boa sorte

  • @diegopadaratz
    @diegopadaratz 5 หลายเดือนก่อน

    Está dando erro de autenticação no meu, vi várias pessoas resolvendo fazendo uma config na conta Google, na opção "Allow less secure apps", mas parece que tiraram essa função, teria algum jeito de resolver isso?

    • @fabiodavel
      @fabiodavel  5 หลายเดือนก่อน

      Oi @diegopadaratz, tudo bem!?
      Pelo Google de fato é bem complicado. A minha sugestão é usar a configuração de SMTP de uma hospedagem, sem usar os recursos de e-mails gratuitos como Hotmail, Gmail etc...
      Analisa direitinho ai e posta para nós qual foi a solução que encontrou.
      Desde já muito obrigado.

  • @wendersonalves7493
    @wendersonalves7493 6 หลายเดือนก่อน

    Opa, tem como usar um tunel de comunicação ssh para chegar até o servidor e disparar o email? Sabe fazer ou tem algum video para indicar?

    • @fabiodavel
      @fabiodavel  5 หลายเดือนก่อน +1

      Acredito que tenha sim, mas nunca fiz. Utilizando api do lado do back-end já seria uma boa abordagem para isso.

  • @thomassantos8311
    @thomassantos8311 ปีที่แล้ว +1

    Deixa eu perguntar, aqui deu tudo certinho.. eu só fiquei sem entender se o email é entregue de verdade mesmo em ambiente de teste. porque eu configurei um email real, no mailtrap disse que o email foi enviado, mas o email não chegou, nem no spam.

    • @fabiodavel
      @fabiodavel  ปีที่แล้ว +1

      @thomassantos8311 o e-mail é entregue tanto em ambiente de teste quanto em desenvolvimento, se não chegou tente analisar com outro e-mail ou tentar exibir os erros que pode ter acontecido algo.
      A ideia do mail mailtrap é simular um envio mesmo. Da mesma forma que chega no mailtrap deverá chegar em outro e-mail.
      Uma coisa que pode acontecer é o e-mail que você configurou rejeitar o recebimento do e-mail. Assim sua aplicação da como sucesso de envio mas seu servidor de e-mail não deixa nem chegar na caixa de entrada. Tente mudar o e-mail configurado para ver se consegue simular melhor.

    • @fabiodavel
      @fabiodavel  ปีที่แล้ว

      @user-es9rh4nw7w o e-mail é entregue tanto em ambiente de teste quanto em desenvolvimento, se não chegou tente analisar com outro e-mail ou tentar exibir os erros que pode ter acontecido algo.
      A ideia do mail mailtrap é simular um envio mesmo. Da mesma forma que chega no mailtrap deverá chegar em outro e-mail.
      Uma coisa que pode acontecer é o e-mail que você configurou rejeitar o recebimento do e-mail. Assim sua aplicação da como sucesso de envio mas seu servidor de e-mail não deixa nem chegar na caixa de entrada. Tente mudar o e-mail configurado para ver se consegue simular melhor.

  • @lordleal7220
    @lordleal7220 9 หลายเดือนก่อน

    bom dia...no servidor Locaweb não funciona...o arquivo com phpmailer fica travado...

    • @fabiodavel
      @fabiodavel  8 หลายเดือนก่อน

      Serio! Tem que ver com o suporte qual meio que eles permitem para enviar email com php

  • @sheyllameazza6242
    @sheyllameazza6242 ปีที่แล้ว

    O meu n deu certo, segui o video certinho

    • @fabiodavel
      @fabiodavel  ปีที่แล้ว

      Oi @sheyllameazza6242, qual erro que mostrou?
      Me envie para que eu possa te ajudar.