Willian webdesigner Postado Maio 4, 2009 Denunciar Share Postado Maio 4, 2009 Ae pessoal, estou precisando de ajuda urgente.Fiz um formulário em meu site ( http://www.willianwebsites.com/contato.html) e um arquivo envia.php, conforme segue abaixo:contato.html<form method="POST" action="envia.php"> <!--Caso queira permitir o preenchimento do email de destino descomente a linha abaixo--> Seu email:<br /><input type="text" name="email_de"><br /><br /> Assunto:<br><input type="text" name="assunto"><br><br> Mensagem:<br /> <textarea name="mensagem" rows="10" cols="60" lines="20"></textarea><br /> <input type="submit" name="send" value="Enviar"> </form>envia.php<?php //PROTEÇÃO ANTES DE ENVIAR //Verifica se os campos mensagem, email_de e assunto do formulário estão preenchidos if (empty($_POST['mensagem'])|| empty($_POST['email_de'])|| empty($_POST['assunto'])) { //Não tem mensagem vindo pelo formulário, não manda nada e redireciona para o formulario.html header("Location: emailnaoenviado.html"); } else { //Verificação antes do envio; //ESTA FUNÇÃO SERVE PARA VERIFICAR A CONSISTÊNCIA DE UM ENDEREÇO DE EMAIL $emailPattern = '/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i'; if (!preg_match($emailPattern, $_POST['email_de'])) { echo "<meta HTTP-EQUIV=Refresh' CONTENT='0;URL=errodeemail.html'>"; } else { //Aqui você pode definir para quem vai o email $to="contato@willianwebsites.com"; //$to = $_POST['email_para]; $from=$_POST['email_de']; // Envia o email : if (mail($to,$_POST['assunto'],$_POST['mensagem'],"From: $from\n")) { // Mostra confirmação de email enviado com sucesso. echo "<meta HTTP-EQUIV=Refresh' CONTENT='0;URL=emailenviado.html'>"; //Destroi as variáveis unset ($_POST['email_de]); unset ($_POST['assunto']); unset ($_POST['mensagem']); } else { // Envio falhou echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=emailnaoenviado.html'>"; } } } ?>Ele até funciona, porém ele da erro se o e-mail preenchido for gmail, yahoo... dependendo ele dá erro.Alguém poderia me ajudar e dizer porque? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Willian webdesigner
Ae pessoal, estou precisando de ajuda urgente.
Fiz um formulário em meu site ( http://www.willianwebsites.com/contato.html) e um arquivo envia.php, conforme segue abaixo:
contato.html
<form method="POST" action="envia.php">
<!--Caso queira permitir o preenchimento do email de destino descomente a linha abaixo-->
Seu email:<br /><input type="text" name="email_de"><br /><br />
Assunto:<br><input type="text" name="assunto"><br><br>
Mensagem:<br />
<textarea name="mensagem" rows="10" cols="60" lines="20"></textarea><br />
<input type="submit" name="send" value="Enviar">
</form>
envia.php
<?php
//PROTEÇÃO ANTES DE ENVIAR
//Verifica se os campos mensagem, email_de e assunto do formulário estão preenchidos
if (empty($_POST['mensagem'])|| empty($_POST['email_de'])|| empty($_POST['assunto'])) {
//Não tem mensagem vindo pelo formulário, não manda nada e redireciona para o formulario.html
header("Location: emailnaoenviado.html");
} else {
//Verificação antes do envio;
//ESTA FUNÇÃO SERVE PARA VERIFICAR A CONSISTÊNCIA DE UM ENDEREÇO DE EMAIL
$emailPattern = '/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i';
if (!preg_match($emailPattern, $_POST['email_de'])) {
echo "<meta HTTP-EQUIV=Refresh' CONTENT='0;URL=errodeemail.html'>";
} else {
//Aqui você pode definir para quem vai o email
$to="contato@willianwebsites.com";
//$to = $_POST['email_para];
$from=$_POST['email_de'];
// Envia o email :
if (mail($to,$_POST['assunto'],$_POST['mensagem'],"From: $from\n")) {
// Mostra confirmação de email enviado com sucesso.
echo "<meta HTTP-EQUIV=Refresh' CONTENT='0;URL=emailenviado.html'>";
//Destroi as variáveis
unset ($_POST['email_de]);
unset ($_POST['assunto']);
unset ($_POST['mensagem']);
} else {
// Envio falhou
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=emailnaoenviado.html'>";
}
}
}
?>
Ele até funciona, porém ele da erro se o e-mail preenchido for gmail, yahoo... dependendo ele dá erro.
Alguém poderia me ajudar e dizer porque?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.