Mata Hary 0 Denunciar post Postado Janeiro 3, 2006 OBS: Eu peguei um codigo que o Fabyo (administrador) postou aqui de enviar email com anexo e só inclui a a parte de puxar os dados da BD. Fabyo, espero que você nao se importe, só quis ajudar o membro Shin X que pediu ajuda e depois como achei util resolvi colocar aqui com um titulo mais especifico pq ele colocou só "E-mail?" Um abraço Mata Hary ******************************PAGINA CONEXAO.PHP********************************* <?$dbname="BANCO DE DADOS"; $usuario="USUARIO";$password="SENHA"; //1º passo - Conecta ao servidor MySQL if(!($id = mysql_connect("localhost",$usuario,$password))) {echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";exit;} //2º passo - Seleciona o Banco de Dados if(!($con=mysql_select_db($dbname,$id))) { echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";exit; } /* Esta função executa um comando SQL no banco de dados MySQL$id - Ponteiro da Conexão $sql - Cláusula SQL a executar $erro - Especifica se a função exibe ou não(0=não, 1=sim) $res - Resposta */ function mysqlexecuta($id,$sql,$erro = 1) { if(empty($sql) OR !($id)) return 0; //Erro na conexão ou no comando SQL if (!($res = @mysql_query($sql,$id))) { if($erro) echo "Ocorreu um erro na execução do Comando SQL no banco de dados. Favor Contactar o Administrador.";exit;} return $res; }?>******************************PAGINA ADM.PHP********************************* <?include "conexao.php";//Executa a consulta$sql = "SELECT * FROM TABELA";$res = mysqlexecuta($id,$sql);while($row = mysql_fetch_array($res)){?><form action="envia.php" method="post" enctype="multipart/form-data" name="email"><input type="checkbox" name="email" value="<?echo $row['email'];?>"><?echo $row['nome'];?><?echo " ";?><?echo $row['email'];?><br><?}?><br>Seu e-mail: <input name="email_from" type="text" class="email"><br>assunto: <input name="assunto" type="text" id="assunto"><br><textarea cols="27" rows="5" name="mensagem"></textarea><br><input name="arquivo" type="file"><BR><input type="submit" name="Submit" value="Enviar"></form>******************************PAGINA ENVIA.PHP********************************* <?phpinclude "conexao.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 emailsif (!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;}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=\"javascript: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 nao tiver anexoelse{$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 anexomail($email,$assunto,$mensagem, $headers);echo"Email enviado com Sucesso!"; }?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 3, 2006 Mata Hary sem problemas os script aqui do laboratorio estao ai pra usar mesmo e se a pessoa nao quiser que alguem use entao nao poste aqui = ) abraços Compartilhar este post Link para o post Compartilhar em outros sites
webthiago 0 Denunciar post Postado Março 16, 2006 1 é so configurar e depoi publicar? 2 servi para qualquer banco de dados? 3 funciona no MySQL 4.x ?4 tem que fazer tabela e banco de dados no mysql? Compartilhar este post Link para o post Compartilhar em outros sites
JackDenio 0 Denunciar post Postado Setembro 19, 2007 E ai galera, poderia somente editar minha resposta, mas resolvi responder pra chamar atenção:P..Meu problema é simples mas não sei porque não ta funcionando; visto uma vez que esse script que foi postado aqui não funcionou ... eu vi que quando se vai enviar um e-mail pra mais de um destinatário tem que se colocar "," então eu tentei receber os e-mails do formulário da seguinte forma : $e = $_POST["email"];$email=implode("," , $e);ai aparece esse erro:Warning: implode() [function.implode]: Bad arguments.Sim eu devo esta errando alguma coisa bem obvia, mas não conseguir descobri o que é, se algém puder dar uma ajuda ai eu fico grato!! Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Setembro 19, 2007 Confirme se $_POST['email'] é realmente um array.Pra isso, se for utilizado vários campos, devem ser de mesmo nome (no exemplo, name="email[]"). Compartilhar este post Link para o post Compartilhar em outros sites
JackDenio 0 Denunciar post Postado Setembro 19, 2007 Com que eu poderia verificar isso ex a variavel $email fosse receber os e-mails de uma query diretamente e não de campos como no ex acima..?Abraço!Editado:Valeu cara,realmente tudo muito obvio, dei mole mas ja tah..mesmo assim obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
pensar 1 Denunciar post Postado Novembro 26, 2007 Ola galera otimo script ja esta funciondo aqui agora queria fazer uma modificaçao Em vez de ficar selecionando o checkbox como faço pra ele enviar para todos se precisar escoher o email?? valew Compartilhar este post Link para o post Compartilhar em outros sites
pensar 1 Denunciar post Postado Novembro 30, 2007 Galera esse script so esta enviando para um email somente e nao para todos.. O que pode ser?? Compartilhar este post Link para o post Compartilhar em outros sites
Londim 0 Denunciar post Postado Junho 9, 2008 OBS: Eu peguei um codigo que o Fabyo (administrador) postou aqui de enviar email com anexo e só inclui a a parte de puxar os dados da BD. Fabyo, espero que você nao se importe, só quis ajudar o membro Shin X que pediu ajuda e depois como achei util resolvi colocar aqui com um titulo mais especifico pq ele colocou só "E-mail?" Um abraço Mata Hary ******************************PAGINA CONEXAO.PHP********************************* <? $dbname="BANCO DE DADOS"; $usuario="USUARIO"; $password="SENHA"; //1º passo - Conecta ao servidor MySQL if(!($id = mysql_connect("localhost",$usuario,$password))) { echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador."; exit; } //2º passo - Seleciona o Banco de Dados if(!($con=mysql_select_db($dbname,$id))) { echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador."; exit; } /* Esta função executa um comando SQL no banco de dados MySQL $id - Ponteiro da Conexão $sql - Cláusula SQL a executar $erro - Especifica se a função exibe ou não(0=não, 1=sim) $res - Resposta */ function mysqlexecuta($id,$sql,$erro = 1) { if(empty($sql) OR !($id)) return 0; //Erro na conexão ou no comando SQL if (!($res = @mysql_query($sql,$id))) { if($erro) echo "Ocorreu um erro na execução do Comando SQL no banco de dados. Favor Contactar o Administrador."; exit; } return $res; } ?>******************************PAGINA ADM.PHP********************************* <? include "conexao.php"; //Executa a consulta $sql = "SELECT * FROM TABELA"; $res = mysqlexecuta($id,$sql); while($row = mysql_fetch_array($res)){?> <form action="envia.php" method="post" enctype="multipart/form-data" name="email"> <input type="checkbox" name="email" value="<?echo $row['email'];?>"> <?echo $row['nome'];?> <?echo " ";?> <?echo $row['email'];?> <br> <?}?> <br> Seu e-mail: <input name="email_from" type="text" class="email"> <br> assunto: <input name="assunto" type="text" id="assunto"> <br> <textarea cols="27" rows="5" name="mensagem"></textarea> <br> <input name="arquivo" type="file"> <BR> <input type="submit" name="Submit" value="Enviar"> </form>******************************PAGINA ENVIA.PHP********************************* <?php include "conexao.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 nao 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!"; } ?> Tudo bem testei e funcionou numa boa.... alias vocês estao de parabens..... MAS....... (ESSE MAS MATA TODO MUNDO) e TENHO A SEGUINTE PERGUNTA VAMOS DIZER Q ESSE SCRIPT ESTA NA PASTA "SITE" DENTRO DA PASTA "SITE" ENCONTRA-SE A PASTA "FOTO" DENTRO DA PASTA "FOTO" TEM A FOTO EU.JPG COMO Q EU ADICIONO ESSA FOTO AO CAMINHO DO ANEXO? Tipo eu meio que isonerei o adm.php eu passo o email de destino por uma cookie direto para o envia.php o resto eh padrão inclusive o endereço da foto minha duvida eh como passaar o endereço de uma foto para o arquivo q anexa? Compartilhar este post Link para o post Compartilhar em outros sites