Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafiWskY

Formulário de Contato - E-Mail com caracteres

Recommended Posts

Bom Dia,

 

Estou enfrentando um problema com formulário de contato que está dando febre.

 

O formulário tem os campos Nome, E-Mail, Assunto e Mensagem... Quando o e-mail do cliente tem traços por exemplo, o e-mail de destino não recebe a mensagem.

 

Exemplo:

Nome: Rafael

E-Mail: ra--fael@hotmail.com

E-MAIL É ENVIADO PORÉM DESTINO NÃO RECEBE E-MAIL

 

Nome: Rafael

E-Mail: rafael@rafael.com.br

E-MAIL É ENVIADO E DESTINO RECEBE O E-MAIL

 

Segue o código que faz o envio do e-mail:

        if( isset($_POST) )
        {
          $to = 'email@email.com.br';
          
          $subject = $_POST['assunto'];

          $msg = '<table style="padding: 45px;">';
          $msg .= '</table>';

          $headers = "MIME-Version: 1.0\n";
          $headers .= "Content-type: text/html; charset=utf-8\n";
          $headers .= 'From: ' . $_POST['emailPost'] . "\r\n" . 'Reply-To: ' . $_POST['emailPost'] . "\r\n" . 'X-Mailer: PHP/' . phpversion();
          
          if(mail($to, $subject, $msg, $headers)){
                echo '<div class="successmes">';
                    echo '<div class="message-box-wrap">';
                    echo '<i class="fa fa-check-square fa-lg"></i> Sua mensagem foi enviada com sucesso.</div>';
                echo '</div>';  
          }else{
                echo '<div class="errormes">';
                    echo '<div class="message-box-wrap">';
                        echo '<i class="fa fa-exclamation-circle fa-lg"></i> Sua mensagem não foi enviada.</div>';
                echo '</div>';            
          }

        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você testou com @hotmail e @rafael.com.br

Geralmente os servidores SMTP forçam que o remetente da mensagem tenha o mesmo domínio corrente. Por exemplo, se seu site está em seusite.com, o remetente deve ser qualquer_coisa@seusite.com. Caso contrário, a mensagem não será entregue.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o e-mail que faz os envios é da mesma hospedagem e o e-mail que recebe as mensagens também é da mesma hospedagem.

 

O problema está quando o e-mail da pessoa que preencheu o formulário tem alguns caracteres, como traço por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o e-mail que faz os envios é da mesma hospedagem e o e-mail que recebe as mensagens também é da mesma hospedagem.

Acho que você se confundiu.

O From é variável no seu código:

'From: ' . $_POST['emailPost'] 

 

 

O problema está quando o e-mail da pessoa que preencheu o formulário tem alguns caracteres, como traço por exemplo.

Nunca vi isso antes. Por isso ainda acho que o problema é o domínio do remetente.

 

Recomendo usar o PHPMailer. Veja http://rberaldo.com.br/enviando-e-mails-com-a-classe-phpmailer/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, você deu uma dica que resolveu o problema.

 

Ao invés de deixar o FROM com o e-mail do usuário, eu deixei com o e-mail que faz o envio. Assim acabou o problema.

 

Sobre o PHP Mailer eu usava ele antes depois passei a usar essa outra função que mostrei. Agora voltei para o PHP Mailer com a mudança que informei.

 

Obrigado pela atenção.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.