Ir para conteúdo

POWERED BY:

Arquivado

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

Aléx Müller

Form Mail com Anexo

Recommended Posts

Não lembro se foi por aqui ou outro Site que peguei um Form Mail com Anexo...

 

Mas, modifiquei ele, e ficou muito bom, tirei uns detalhes desinteressantes (tipo: "Para", onde digitaria o email de destino), acrescentei campos e enfim, o Form ta funcionando muito bem...

 

Agora eu queria uma ajuda de vocês:

Como posso fazer para que ele envie e-mail em HTML, com cor de fundo, colocando em uma ordem os dados a serem enviados (já que ele envia um texto unido, dividindo os dados apenas por um pontoevirgula...

 

Segue os códigos abaixo:

 

email.html

<html>
<head>
<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">Formulário de email com anexo </h1>
  <table width="32%"  border="0" align="center">
	<tr>
	  <td align="right"><div align="right"><b><span class="texto">
		<font color="#000000">Nome:</font></span></b></div></td>
	  <td><input name="nome" type="text" id="nome" size="82"></td>
	</tr>
	<tr>
	  <td width="33%" align="right"><div align="right" class="texto">
		<font color="#000000"><b>Email:</b></font></div></td>
	  <td width="67%">
		<input name="email_from" type="text" class="email" size="82"></td>
	</tr>
	<tr>
	  <td align="right"><b>Site:</b></td>
	  <td><input name="site" type="text" class="email" size="82"></td>
	</tr>
	<tr>
	  <td align="right"><b>Endereço:</b></td>
	  <td><input name="endereco" type="text" class="email" size="82"></td>
	</tr>
	<tr>
	  <td align="right"><b>Telefone:</b></td>
	  <td><input name="ddd" type="text" class="email" size="5"> -
		<input name="telefone" type="text" class="email" size="21"></td>
	</tr>
	<tr>
	  <td align="right"><b>Cidade:</b></td>
	  <td><input name="cidade" type="text" class="email" size="57"> <b>- Estado:
		</b><select size="1" name="uf">
		<option>RJ</option>
		<option>SC</option>
		</select></td>
	</tr>
	<tr>
	  <td align="right"><div align="right" class="texto"><font color="#000000">
		<b>Assunto:</b></font></div></td>
	  <td><select size="1" name="assunto">
		<option>Anuncios</option>
		<option>Pagamentos</option>
		</select></td>
	</tr>
	<tr>
	  <td align="right"><div align="right" class="texto"><font color="#000000">
		<b>Descrição:</b></font></div></td>
	  <td><textarea name="descricao" cols="50" rows="10" id="mensagem"></textarea></td>
	</tr>
	<tr>
	  <td align="right"><div align="right" class="texto"><font color="#000000">
		<b>Imagem:</b></font></div></td>
	  <td><input name="arquivo" type="file"></td>
	</tr>
	<tr>
	  <td align="right"> </td>
	  <td><input type="submit" name="Submit" value="Enviar"><input type="reset" name="Limpar" value="Limpar"></td>
	</tr>
  </table>
</form>
</body>
</html>

envia.php

<?php
//coloque seu email abaixo
$para = "seu_email@seu_domínio.com";

//pego os dados enviados pelo formulario
$mensagem = "
Nome: ".$_POST["nome"].";
Email: ".$_POST["email_from"].";
Site: ".$_POST["site"].";
Endereço: ".$_POST["endereco"].";
DDD: ".$_POST["ddd"].";
Telefone: ".$_POST["telefone"].";
Cidade: ".$_POST["cidade"].";
Estado: ".$_POST["uf"].";
Assunto: ".$_POST["assunto"].";
Descrição: ".$_POST["descricao"]."";

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

$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($para,$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($para,$assunto,$mensagem, $headers);

echo"Email enviado com Sucesso!"; 

}

?>

Atenção: o Form já está enviando o e-mail normalmente, sem problemas nem para Hotmail (onde eu testo sempre...)

Só quero poder formatar o texto em código HTML para melhorar o aspecto na recepção...

 

Valeu...

Aléx Müller.

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.