Jump to content
Rodrigokyo

Enviando multiplos arquivos por email php

Recommended Posts

Pessoal alguém sabe como enviar múltiplos arquivos por email com php, eu peguei um tutorial php que funciona ele envia anexo normalmente porem ele não envia mais do que um por vez, gostaria que enviasse mais de um onde eu selecionaria vários arquivos no mesmo input e enviaria para um  email, veja o modelo que estou usando. 

 

Index.html

<html> 
<head> 
<script language="javascript"> 
 
function checa_formulario(email){ 
if (email.nome_para.value == ""){ 
alert("Por Favor nao deixe o nome em branco!!!"); 
email.nome.focus(); 
return (false); 
} 
 
if (email.email.value == ""){ 
alert("Nao deixe o email destinatario em branco!!!"); 
email.email.focus(); 
return (false); 
} 
 
if (email.assunto.value == ""){ 
alert("Nao 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">Formulário de email com anexo </h1> 
<table width="50%" border="0" align="center"> 
<tr> 
<td><div align="right"><span class="texto">Nome do destinatario:</span></div></td> 
<td><input name="nome_para" type="text" id="nome_para"></td> 
</tr> 
<tr> 
<td><div align="right" class="texto">Email de destino</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>&nbsp;</td> 
<td><input type="submit" name="Submit" value="Enviar"></td> 
</tr> 
</table> 
</form> 
</body> 
</html>

 

envia.php

<?php 
 
//Pega os dados postados pelo formulário HTML e os coloca em variaveis
if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {
//substitua na linha acima a aprte locaweb.com.br por seu domínio.
$email_from='email@seudominio';	// Substitua essa linha pelo seu e-mail@seudominio
}else {
$email_from = "email@" . $_SERVER[HTTP_HOST];         
//    Na linha acima estamos forçando que o remetente seja 'webmaster@',
// você pode alterar para que o remetente seja, por exemplo, 'contato@'.
}
 
 
if( PATH_SEPARATOR ==';'){ $quebra_linha="\r\n";
 
} elseif (PATH_SEPARATOR==':'){ $quebra_linha="\n";
 
} elseif ( PATH_SEPARATOR!=';' and PATH_SEPARATOR!=':' )  {echo ('Esse script não funcionará corretamente neste servidor, a função PATH_SEPARATOR não retornou o parâmetro esperado.');
 
}
 
//pego os dados enviados pelo formulário 
$nome_para = $_POST["nome_para"]; 
$email = $_POST["email"]; 
$mensagem = $_POST["mensagem"]; 
$assunto = $_POST["assunto"]; 
//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=\"javascript:history.go(-1)\">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" . $quebra_linha . ""; 
$mens .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . ""; 
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"" . $quebra_linha . "" . $quebra_linha . ""; //plain 
$mens .= "$mensagem" . $quebra_linha . ""; 
$mens .= "--$boundary" . $quebra_linha . ""; 
$mens .= "Content-Type: ".$arquivo["type"]."" . $quebra_linha . ""; 
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"" . $quebra_linha . ""; 
$mens .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . ""; 
$mens .= "$anexo" . $quebra_linha . ""; 
$mens .= "--$boundary--" . $quebra_linha . ""; 
 
$headers = "MIME-Version: 1.0" . $quebra_linha . ""; 
$headers .= "From: $email_from " . $quebra_linha . ""; 
$headers .= "Return-Path: $email_from " . $quebra_linha . ""; 
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . ""; 
$headers .= "$boundary" . $quebra_linha . ""; 
 
 
//envio o email com o anexo 
mail($email,$assunto,$mens,$headers, "-r".$email_from); 
 
echo"Email enviado com Sucesso!"; 
 
} 
 
//se nao tiver anexo 
else{ 
 
$headers = "MIME-Version: 1.0" . $quebra_linha . ""; 
$headers .= "Content-type: text/html; charset=iso-8859-1" . $quebra_linha . ""; 
$headers .= "From: $email_from " . $quebra_linha . ""; 
$headers .= "Return-Path: $email_from " . $quebra_linha . ""; 
 
//envia o email sem anexo 
mail($email,$assunto,$mensagem, $headers, "-r".$email_from); 
 
 
echo"Email enviado com Sucesso!"; 
} 
 
?>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Web.Developer
      { "message":"encontrado.", "resultados":[ { "transacao":"23424324324", }, { "transacao":"2342342432424", } ] } preciso montar um API assim na onde está transacao tem que vim do banco de dados, depois retorna para as pessoas a array dessa formula
    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      Todas as regras de negócio são implementadas como Stored Procedures.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.