Ir para conteúdo

POWERED BY:

Arquivado

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

marcelow

email enviado pelo formulario demora a chegar..

Recommended Posts

Boas!

Uma pessoa fez um site pra mim, e então tenho um problema que essa pessoa não consegue resolver.

 

Acontece que no formulario, qdo envia a mensagem, aparece q foi com sucesso. Porém, a mensagem demora umas 5 horas pra chegar no email.

 

eis o envio de email

 

<?php

header("Content-type: text/html; charset=utf-8");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// Define vari�veis

$msg = null;

if($_POST['nome'] && $_POST['email'] && $_POST['mensagem']){

$nome=strtoupper($_POST['nome']);
 $email=strtolower($_POST['email']);
 $mensagem=strtoupper($_POST['mensagem']);
 $assunto = "Contato";
 $destinatario = "email@meudominio.com.br";
 $headers = "MIME-Version: 1.0\r\n";
 $headers .= "Content-type: text/html; charset=utf-8\r\n";
 $headers .= "From: $email \r\n";


   $html = "<html>";
   $html .= "
   <style>
   .form1 {
       font-family: verdana;
       font-size:10pt;
       color:black;
       padding:3px;
   }
   HR {
       color:black;
       border: 2px black solid;
   }
   CENTER{
           font-weight:bold;
           font-size:15pt;
   }
   BIG{
     font-weight:bold;

       font-size:14pt;
   }
   H1{
       FONT-WEIGHT:BOLD;
       FONT-SIZE:13PT;
       MARGIN-LEFT:20PX;
       MARGIN-TOP:0PX;
       MARGIN-BOTTOM:-9PX
   }
   </style>";
   $html .= "<DIV CLASS=cur><CENTER>Contato</CENTER><HR><BIG><B> $nome </BIG></B><BR>";
   $html .= "<B>Nome: </B> $nome <BR>";
   $html .= "<B>Email: </B> $email <BR>";
   $html .= "<B>Mensagem: </B> $mensagem <BR>";
   $html .= "<HR></DIV>";
   $html .= "</html>";

   mail($destinatario,$assunto,$html,$headers);
     $msg = 1;

     if(isset($msg)) 
     {
       echo utf8_encode($msg);

       $resposta = "<font face=verdana size=3 color=black>Email enviado com sucesso !</font>";
     }
     else{
      $resposta = "<font face=verdana size=3 color=white>Ocorreu um erro durante o envio do email. Tente enviar mais tarde.</font>";
   }
header("Location:contato.php?resposta=".$resposta);
}
?>

 

Minha hospedagem é uol host, e onde esta email@meudominio.com.br eu substituo pelo meu atual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A demora está relacionada com seu serviço de e-mail e não com o código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A demora está relacionada com seu serviço de e-mail e não com o código.

 

Mas por exemplo, eu entro no meu webmail e mando email de mim pra mim mesmo e chega na hora, pego outro email meu (gmail, hotmail) e envio pro meu dominio e chega na hora também.

 

Pq será que só no codigo não chega ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A demora se deve a rota feita pela mensagem.

 

Isso é um dos fundamentos da internet, acessar um site, enviar um e-mail e qualquer outra atividade na internet irá passar por vários servidores, esse caminho é invisivel para o usuário, por isso ele tem a impressão que está se conectando diretamente ao servidor que hospeda o site, ou que envia o e-mail.

 

Mas não é assim, todas as solicitações que partem do servidor abc requisitando algo do servidor def podem não ir diretamente de um servidor ao outro, podem antes passar por diversos servidores antes de serem entregues ao destinatário, usando para isso o algoritimo do menor caminho, que determina qual será a rota mais eficiente para o transporte da mensagem, tendo vários parametros, como servidor mais proximo do destino, tempo de resposta dos servidores, etc...

 

Por isso um e-mail enviado do vizinho pode demorar algumas horas para chegar, enquanto o do amigo que fica do outro lado do mundo chega rapidamente.

 

O mesmo ocorre com seu formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A demora se deve a rota feita pela mensagem.

 

Isso é um dos fundamentos da internet, acessar um site, enviar um e-mail e qualquer outra atividade na internet irá passar por vários servidores, esse caminho é invisivel para o usuário, por isso ele tem a impressão que está se conectando diretamente ao servidor que hospeda o site, ou que envia o e-mail.

 

Mas não é assim, todas as solicitações que partem do servidor abc requisitando algo do servidor def podem não ir diretamente de um servidor ao outro, podem antes passar por diversos servidores antes de serem entregues ao destinatário, usando para isso o algoritimo do menor caminho, que determina qual será a rota mais eficiente para o transporte da mensagem, tendo vários parametros, como servidor mais proximo do destino, tempo de resposta dos servidores, etc...

 

Por isso um e-mail enviado do vizinho pode demorar algumas horas para chegar, enquanto o do amigo que fica do outro lado do mundo chega rapidamente.

 

O mesmo ocorre com seu formulário.

 

Compreendo. Até cogitei a hipotese de ser o UOL mesmo, mas depois dos testes que fiz, não vejo motivos para o formulario não chegar no mesmo tempo, tendo em vista que o email que o formulario utiliza para enviar é o mesmo do destinatario.

Sendo assim, qual seria minha saida pra que chegasse na hora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez a saída para você seria fazer uma ligação direta com o servidor receptor da mensagem que você quer mandar... Mas isso tira um pouco da versatilidade do script, fora que, o tempo de recebimento pode variar e também depende de "n" variáveis, desde rota até parâmetros de recebimento e envio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque nao usa o PHPClassMail?! Tambem tinha problemas quando usava o mail() migrei todos os meus websites para a Phpclassmail parou de dar problemas.

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.