Ir para conteúdo

POWERED BY:

Arquivado

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

Dumont

Envio de Email

Recommended Posts

Boa tarde,

 

Estou com um problema ao enviar o email..depois de preencher o formulário diz mensagem enviada mas depois não recebo nada no meu email..que poderá ser??

 

<?php
 include ('layout.php');

?>

<div id="texto">


<?php

if(isset($_POST['Submit'])){


$mail_to= "josericardo19242@gmail.com";
$mail_from=$_POST['txtEmailfrm2'];
$mail_sub=$_POST['txtSub2'];
$mail_mesg=$_POST['txtMsg2'];

if(mail($mail_to,$mail_sub,$mail_mesg,"From:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='red'>E-mail enviado com sucesso para $mail_sub to $mail_to</span>";
else
echo "<span class='red'>Falha ao enviar E-mail para $mail_sub to $mail_to</span>";
}
?>

<form name="frmsendmail" method="post" action="index.php" onSubmit="return ValidationForm()">
      <table width="100%"  border="0">
      <br>
        <tr>
         <td width="33%" align="left" class="text"><font face="Bell MT" size="3" color="#15b2ff"> De :</font></tr>
         <tr>
          <td width="67%" align="left"><input name="txtEmailto2" type="text" class="input" id="txtEmailto22" size="30" maxlength="100">
        </tr>
        
          <td align="left" class="text"><font face="Bell MT" size="3" color="#15b2ff"> Assunto :</font></tr>
          <tr>
        <td align="left"><input name="txtSub2" type="text" class="input" id="txtSub22" size="30" maxlength="100">
        </tr>
        <tr>
          <td align="left" class="text"><font face="Bell MT" size="3" color="#15b2ff"> Mensagem :</font>  </tr>
          <tr>
         <td><textarea name="txtMsg" cols="40" rows="10" class="input" id="textarea"></textarea>
        </tr>
      <tr>
          <td align="right"><input name="hidSubmit" type="hidden" id="hidSubmit" value="true">
              <input align="left" name="Submit" type="submit" class="input" value="Enviar">
          <td><input align="left" name="Submit2" type="reset" class="input" value="Limpar">
        </tr>         
      </table>
     </form>
     </div>
             
             </body>
</html>   

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu script está simples e deveria estar funcionando normalmente, porém existem duas razões que podem conflitar com o funcionamento dele.

 

1 - O servidor ter alguma política anti-spam que está bloqueando.

2 - Seus headers estão incorretos ou incompletos.

 

Acredito que a solução mais provável é simplesmente trocar o "From" por um e-mail interno do servidor, ou seja:

 

$site = 'seusite.com.br';
if(mail($mail_to,$mail_sub,$mail_mesg,'From:Teste<contato@'.$site.'>'."/r/n".'Reply-to:'.$mail_from))

Explicando: muitos servidores bloqueiam o From com e-mails externos, evitando a prática de SPAM. Colocando um e-mail que pertença ao domínio do servidor, o envio é permitido.

Se não funcionar avise, que eu faço uns headers mais completos, porém acredito que essa solução resolva seu caso.

 

Até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho fica muito simples seu form pode ter varios imputs voce so chama o form...

------------------------------------------------------------

Formulario de Envio FORM

<form method="post" action="envia_email.php">

 

-------------------------------------------------------------

envia_email.php

<?php
if(isset($_POST))
{
$email = 'SEU@EMAIL.COM';
$subject = 'Formulario Envio de E-mail';
$formulario = NULL;
foreach($_POST as $x => $v){
	$formulario .= $x.': ' .$v .'<br />' ;
}
if(mail($email , $subject, $formulario )){
	echo 'Email enviado';
}else{
	echo 'Erro';/* editada palavra de baixo calão */
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara acho que encontrei uma falha no seu código!

 

Olhe essa parte:

 

<?php
if(mail($mail_to,$mail_sub,$mail_mesg,"From:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='red'>E-mail enviado com sucesso para $mail_sub to $mail_to</span>";
else
echo "<span class='red'>Falha ao enviar E-mail para $mail_sub to $mail_to</span>";
?>

Bom eu não lembro no PHP, mas na linguagem C se as instruções dentro de um if, else ou ifelse tiverem mais de uma linha é necessário utilizar as chaves de abertura e de fechadura! Outra coisa, tente armazenando o header em uma variável e aí você coloca a varável em vez da string!

 

Exemplo:

 

<?php
$header="From:$mail_from/r/nReply-to:$mail_from";
if(mail($mail_to,$mail_sub,$mail_mesg,$header)){
echo "<span class='red'>E-mail enviado com sucesso para $mail_sub to $mail_to</span>";
}
else{
echo "<span class='red'>Falha ao enviar E-mail para $mail_sub to $mail_to</span>";
}
}//Essa aqui é do primeiro if lá em cima!
?>

Testa aí e poste de novo!

 

E Lincoln Nogueira Por Favor não utilize de palavras de baixo calão(palavrões) desnecessariamente, aliás não utilize-as em nenhum momento no fórum!

 

http://forum.imasters.com.br/index.php?app=core&module=help

 

 

02ª - Comportamento e bons modos

- Evite entrar em discussões que não lhe dizem respeito. - Evite palavras de baixo calão (palavrões). - Caso encontre alguma irregularidade e tenha disponibilidade, por favor, comunique ao moderador responsável pela área. - Evite discussões pessoais em público. Caso tenha algo a discutir com alguém, faça em particular. - Leia o tópico inteiro tal como todos os posts antes de responder, para evitar responder algo redundante ou fora de contexto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não creio que o problema seja if por dois motivos:

 

1 - A mensagem final é retornada ao usuário, informando-o se o envio foi possível ou não.

2 - O usuário recebe a mensagem de sucesso, porém não recebe o e-mail.

 

Provavelmente a solução é mudar o remetente ou as headers.

Sobre os headers em strings ou variaveis, é indiferente, uma vez que o resultado final é o mesmo. A leitura do header é o que está contido na variável.

 

Todo caso, recomendo também utilizar chaves no script. O código fica mais organizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não estou a conseguir enviar nada..e estava aqui a testar com calma..e afinal ele não está a fazer os echo..Quando envio não dá erro nenhum e vai directamente para a pagina principal..não percebo muito bem porque que ele faz isso porque no submit enviar não digo para o fazer..

 

 

H4XOR não percebi muito bem a tua solução..porque ponho o site neste caso será fundacaobetania.com e depois que quer dizer isto?

From:Teste<contato@'.$site.'

 

[code=auto:0]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dumont,

 

Segue o seu código funcionando:

<?php
if(isset($_POST['Submit'])){

$mail_to = "email@servidor.com.br";
$mail_from = $_POST['txtEmailfrm2'];
$mail_sub = $_POST['txtSub2'];
$mail_mesg = $_POST['txtMsg2'];
//global $email; //transforma em variavel global a varivel e-mail (só funciona com isso em alguns servidores)

$headers = 'MIME-Version: 1.0 /r/n'
. 'From:' . $mail_from . '/r/n' . 'Reply-to:' . $mail_from . '/r/n';

mail($mail_to, $mail_sub, $mail_mesg, $headers);
echo "<span class='red'>E-mail enviado com sucesso para $mail_sub to $mail_to</span>";
}
?>

 

Importante: O action do form tem que estar apontando para o arquivo certo ex: action="email.php"

 

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.