Ir para conteúdo
Fórum Script Brasil
  • 0

PHPMailer: Duplicidade de emails recebidos e status do envio


bsabrunosouza

Pergunta

Olá, pessoal!
Estou criando um formulário de contato com PHP e ele está funcional. Entretanto, há dois problemas que estão ocorrendo:

  1. Ao receber o e-mail na minha caixa postal ocorre em duplicidade;
  2. Ao enviar.php a página carregada mostra os passos que o php executou para enviar.

Imagem do erro

 

<?php
date_default_timezone_set('America/Sao_Paulo');

require_once('src/PHPMailer.php');
require_once('src/SMTP.php');
require_once('src/Exception.php');
 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

$nome = isset($_POST['nome']) ? $_POST['nome'] : 'Não informado';
$telefone = isset($_POST['telefone']) ? $_POST['telefone'] : 'Não informado';
$email = isset($_POST['email']) ? $_POST['email'] : 'Não informado';
$assunto = isset($_POST['assunto']) ? $_POST['assunto'] : 'Não informado';
$mensagem = isset($_POST['mensagem']) ? $_POST['mensagem'] : 'Não informado';
$data = date('d/m/Y H:i:s');

if($email && $mensagem ) {
    $mail = new PHPMailer(true);
    $mail->isSMTP();
    $mail->SMTPDebug = 1;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';
    $mail->Host = 'smtp.mail.yahoo.com';
    $mail->Port = 465;
    $mail->Username = 'Email hidden for security';
    $mail->Password = 'Password hidden for security';

    $mail->ClearAllRecipients();
    $mail->setFrom('Email hidden for security');
    $mail->addAddress('Email hidden for security');
    
    $mail->isHTML(true);
    $mail->Subject = $assunto;
    $mail->Body = "Nome: {$nome}<br>
                Telefone: {$telefone}<br>
                Email: {$email}<br>
                Mensagem: {$mensagem}<br>
                Data/hora: {$data}";
    if($mail->send()) {
        echo 'Email enviado com sucesso';
    } else {
        echo 'Email não enviado';
        }
}

Espero que possam me ajudar. :)

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Você deve estar com o debug ativo, por isso ele exibe a comunicação.
Pra não repetir, após enviar o email faça um redirect para alguma outra página. Assim os dados do POST deixarão de existir e um refresh na página não envirá o email novamente.
 

Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, MLeandroJr! disse:

Você deve estar com o debug ativo, por isso ele exibe a comunicação.
Pra não repetir, após enviar o email faça um redirect para alguma outra página. Assim os dados do POST deixarão de existir e um refresh na página não envirá o email novamente.
 

Olá, primeira parte feita. Muitísssimo obrigado!
A minha ideia era introduzir um pop-up quando o email fosse enviado com sucesso, mas ainda não tenho um nível suficientemente bom para isso.
Poderia fornecer material para isso?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...