Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>";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>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 */
}
}
?>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>";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
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.
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]
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
Sem resultado. Hm, e agora??
Acho que vou fazer pro administrador ver a senha dos usuários e caso haja perda de senha ele os informa por telefone.
=/
A unica solução que eu estou vendo.!
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