Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário De E-mail Com Anexo


Beraldo

Pergunta

Script postado por: Fabyo



Formulário de E-Mail com Anexo

Fiz esse formulario que envia email com anexoe validação de email

email.html

CODE

<html>
<head>
<script language="javascript" type="text/javascript">

function checa_formulario(email){

if (email.nome.value == ""){
alert("Por Favor não deixe o seu nome em branco!!!");
email.nome.focus();
return (false);
}

if (email.email_from.value == ""){
alert("Por Favor não deixe o seu email em branco!!!");
email.email_from.focus();
return (false);
}

if (email.email.value == ""){
alert("não deixe o email destinatario em branco!!!");
email.email.focus();
return (false);
}

if (email.assunto.value == ""){
alert("não deixe o assunto em branco!!!");
email.assunto.focus();
return (false);
}

}
</script>
<title>Enviando texto</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.email {
text-transform: lowercase;
}
.texto {
color: #0000FF
}
.style1 {color: #FF0000}

-->
</style>
</head>

<body onLoad="document.email.nome.focus();">
<form onsubmit="return checa_formulario(this)" action="envia.php" method="post" enctype="multipart/form-data" name="email">
<h1 align="center" class="style1">Formulario de email com anexo </h1>
<table width="32%" border="0" align="center">
<tr>
<td><div align="right"><span class="texto">Nome</span></div></td>
<td><input name="nome" type="text" id="nome"></td>
</tr>
<tr>
<td width="33%"><div align="right" class="texto">De:</div></td>
<td width="67%"><input name="email_from" type="text" class="email"></td>
</tr>
<tr>
<td><div align="right" class="texto">Para</div></td>
<td><input name="email" type="text" class="email">
</tr>
<tr>
<td><div align="right" class="texto">Assunto</div></td>
<td><input name="assunto" type="text" id="assunto"></td>
</tr>
<tr>
<td><div align="right" class="texto">Mensagem</div></td>
<td><textarea name="mensagem" cols="50" rows="10" id="mensagem"></textarea></td>
</tr>
<tr>
<td><div align="right" class="texto">Anexo</div></td>
<td><input name="arquivo" type="file"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>


envia.php

QUOTE
<?php

//pego os dados enviados pelo formulario
$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];
$assunto = $_POST["assunto"];
$email_from = $_POST["email_from"];

//formato o campo da mensagem
$mensagem = wordwrap( $mensagem, 50, "<br>", 1);

//valido os emails
if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){

echo"<center>Digite um email valido</center>";
echo "<center><a href=\"java script:history.go(-1)\">Voltar</center></a>";
exit;

}

if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email_from)){

echo "<center>Digite um email valido</center>";
echo "<center><a href=\"java script:history.go(-1)\"><center>Voltar</center></a>";
exit;

}


$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;

if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
$anexo = base64_encode($anexo);

fclose($fp);

$anexo = chunk_split($anexo);


$boundary = "XYZ-" . date("dmYis") . "-ZYX";

$mens = "--$boundary\n";
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; //plain
$mens .= "$mensagem\n";
$mens .= "--$boundary\n";
$mens .= "Content-Type: ".$arquivo["type"]."\n";
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";
$mens .= "Content-Transfer-Encoding: base64\n\n";
$mens .= "$anexo\n";
$mens .= "--$boundary--\r\n";

$headers = "MIME-Version: 1.0\n";
$headers .= "From: \"$nome\" <$email_from>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
$headers .= "$boundary\n";

//envio o email com o anexo
mail($email,$assunto,$mens,$headers);

echo"Email enviado com Sucesso!";

}

//se não tiver anexo
else{

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: \"$nome\" <$email_from>\r\n";

//envia o email sem anexo
mail($email,$assunto,$mensagem, $headers);

echo"Email enviado com Sucesso!";

}

?>
-----
Uma alternativa mais simples e confiável é utilizar o PHPMailer
Editado por Beraldo
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Ola bom dia

Bom eu testei o codigo inicial no meu servidor localhost aqui

A pagina html esta Ok

Quanto a funcionalidade em php esta com prolema de fechamento de comando deve ser algum problema relacionado a declaração dos comandos de inicio e finalização do script...

Mas dando uma boa trabalhada neste codigo ele fica legal gente

Gostaria de convidar para acessar o meu blog www.evidenciatecnologica.com

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, valeu pela dica, mas eu apanhei bastante pra implementar, sou iniciando em código e precisava resolver azap, com calma eu vou estudar o código, por enquanto usei o ng mesmo e ele resolveu bem. pra quem é como eu rs... fica a dica... www.ngprofessionals.com.br.

na verdade eu precisava concentrar todos os registros em banco, por isso acabei optando por um formulário desses on-line mesmo.

Eu pesquisei vários e o wuffo também é bom mas o ng é brasileiro e bem melhor.

assim que eu conseguir entender melhor o código, posto novamente. abraços

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...