Ir para conteúdo

POWERED BY:

Arquivado

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

Fabyo

Formulario de Email com Anexo

Recommended Posts

Olá Pessoal, me deiem um help!Assim, adicionei mais campos no meu form e só consigo receber o anexo, os outros campos não recebo.Bom olha o que eu fiz:<?php//-----------------------------------------------------------------------------------------// ESSA PARTE EU TIREI FORA POIS ESTOU USANDO OUTRO MODELO DE FORM PHP // POIS NÃO ESTOU USANDO ESSE TIPO DE VALIDAÇÃO// TB NÃO SEI PARA QUE SERVE ESSA PARTE//-----------------------------------------------------------------------------------------//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=\"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;}//--------------------------------------------------------------//FIM DA PARTE QUE TIREI FORA//--------------------------------------------------------------$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//------------------------------------------------------------------------------//EM VEZ DE USAR ESSA VARIAVEL $MENSAGEM AQUI ESTOU COLOCANDO MINHAS VARIAVEIS DE CADA CAMPO QUE CRIEI//----------------------------------------------------------------------------------------------------// $mens .= "$mensagem\n";//EXEMPLO: //$mens .="$data\n";//$mens .="$horas\n";//$mens .="$etc\n";------------------------------------------------------// O RESTANTE ABAIXO DEICHEI COMO ESTÁ-----------------------------------------------------$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!"; }?>NA PARTE $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n"; fiz um teste, se apago essa linha, não vem o anexo e vem as variaveis.Por Favor se alguem souber me ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu deus alguem responde isso: Como faço para já deixar configurado o endereço de e-mail para onde quero que vá o e-mail com o anexo, e tirar o campo "para" do formulário?por favor to precisando muuuuito!! obrigado!

Olá Amigo essa é moleza, olha só:<?php//pego os dados enviados pelo formulario$nome = $_POST["nome"];$email = $_POST["email"];$mensagem = $_POST["mensagem"];$assunto = $_POST["assunto"];-------------------------------------------------//SE QUIZER PODE APAGAR ESSA LINHA$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=\"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";---------------------------------------------------------------------------//OBSERVE AGORA// NA VARIAVEL $EMAIL COLOCQUE O SEU EMAIL//envio o email com o anexo mail($email,$assunto,$mens,$headers); // COMO FICARIAmail("contato@contato.com.br",$assunto,$mens,$headers); //MOLEZA NÉ-----------------------------------------------------------------------------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!"; }?>obs: agora é ir só lá no formulario e apagar o campo "Para".Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal! Este script foiu o melhor que já encontrei. PARABÉNS. Coloquei no meu site e tá funcionando que é uma beleza! Agora eu também queria retirar o campo "PARA" para que o email fosse direto. Segui a dica, mas não deu certo. o email é secretaria@poloqueimados.hpw.com.br.Alguém pode ajudar? ? ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera xou, tem como mandar para varios email de uma vez só, e tem como formatar o testo que vai como menssagem (alinhar font, trocar cor da font, pular linha etc...)Brigadão :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendim, o arquivo vai em anexo para o e-mail.mas, se eu quiser por exemplo:Enviar os dados para o e-mail, e o arquivo para o uma pasta do meu servidor, como eu faria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente: EXCELENTE TUTORIAL!!!

 

Parabéns!

 

Más estou enfrentando alguns dilemas:

 

1. Gostaria que o arquivo anexado ficasse hospedado no meu servidor.

2. Só quero que seja anexado arquivos com a extensão .TXT

3. Gostaria de enviar um arquivo .txt (são meus clientes), no qual já está armazenado num .txt separado por ponto e vírgula (;), e este quando fosse anexado encaminhasse uma cópia para TODAS as outras pessoas que estão no meu .txt que anexei.

 

Isso é possível?

 

Abraços.

 

E mais uma vez: PARABÉNS PELO BELISSÍMO TUTORIAL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Fabyo,Na minha página retorna esse erro:Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/boquinod/public_html/envia.php on line 88

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera...

Fabyo meus parabéns pelo script... mto bem estruturado, e de ótima funcionabilidade. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Mas estou com um probleminha, qndo recebo o e-mail, os caracteres 'especiais', como "ç", "é", etc estão chegando como códigos do tipo: çãé.

 

Por exemplo, a palavra "Maça" chega no e-mail como "Maça".

 

Gostaria de saber como faço para resolver este problema.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri o problema cara! É que eu estou executando o script pelo flash, e o flash envia as informações no formato Unicode (UTF-8). Então usei um utf8_decode($_POST["variavel"]) no seu script e tudo se resolveu :D... Seria interessante inclusive fazer um tópico sobre essa função utf8_decode... pq pra quem faz a comunicação do php com o flash, é algo muito util.Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha dúvida também é essa:"Como faço para já deixar configurado o endereço de e-mail para onde quero que vá o e-mail com o anexo, e tirar o campo "para" do formulário? "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Delete o campo "para", na página php delete as linhas da validação do destinatário e deixe a linha do destinatário assim:$to = "seunome@seudominio.com.br";

Compartilhar este post


Link para o post
Compartilhar em outros sites

E AII beleza, EU TESTEI O FORMULARIO, ELE FUNCIONA BEM, MAS, SOH ENVIOU AS MSGS E O ARQUIVO ANEXO NAO FOI, ALGUEM SABE AII PORQUE ISSO ACONTECE??? E A SOLUÇAO TBM...VLW A TDS..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nosso amigo fabyo está de parabens mesmo pelo script... é otimo!Mas tnho uma duvida. Ja foi colocada ai mas não entendi muito bem.Como fixo um e-mail para ser enviado. Quero tirar o campo "PARA" e fixar um email para receber os anexos... como faço isso?Alguém pode me ajudar por favor?Obrigado!!Rodrigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mandar para um e-mail fixo muda a linha:

 

$email = $_POST["email"];

por:

$email = "seuemail@dominio.com.br";

Alguém já testou enviando para um email do gmail?

Testei aqui e o anexo (um pdf) não chegou... o que chegou foi:

 

Content-type: multipart/mixed; boundary="XYZ-160520071029-ZYX"Message-Id: <20070516041029.747D078056@smtp.dominio.com.br>Date: Wed, 16 May 2007 01:10:29 -0300 (BRT)X-dominio.com.br-MailScanner-Information: Please contact the ISP for more informationX-dominio.com.br-MailScanner: Found to be cleanX-dominio.com.br-MailScanner-SpamScore: ssssssXYZ-160520071029-ZYX--XYZ-160520071029-ZYXContent-Transfer-Encoding: 8bitsContent-Type: text/html; charset="ISO-8859-1"testando para o gmail.--XYZ-160520071029-ZYXContent-Type: application/pdfContent-Disposition: attachment; filename="alfabeto.pdf"Content-Transfer-Encoding: base64JVBERi0xLjMNJeLjz9MNCjYgMCBvYmoNPDwgDS9MaW5lYXJpemVkIDEgDS9PIDggDS9IIFsgNzczIDE3OCBdIA0vTCA3NTgyIA0vRSA2MzU0IA0vTiAxIA0vVCA3MzQ1IA0+PiANZW5kb2JqDSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4cmVmDTYgMTcgDTAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMDY4NCAwMDAwMCBuDQowMDAwMDAwOTUxIDAwMDAwIG4NCjAwMDAwMDExMDIgMDAwMDAgbg0KMDAwMDAwMTIxNSAwMDAwMCBuDQowMDAwMDAxNTU0IDAwMDAwIG4NCjAwMDAwMDE3ODcgMDAwMDAgbg0KMDAwMDAwMjAzOSAwMDAwMCBuDQowMDAwMDAyMTkxIDAwMDAwIG4NCjAwMDAwMDI0MjcgMDAwMDAgbg0KMDAwMDAwMjcxNiAwMDAwMCBuDQowMDAwMDAyODM1IDAwMDAwIG4NCjAwMDAwMDMxNjcgMDAwMDAgbg0KMDAwMDAwMzQ2NCAw

e foi nesse código ai até o final =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM SOU NOVA POR AQUI E TENHO UM MONTE DE DÚVIDAS!!!amei o cód postado, resolveu um gd problema, mas, agora, estou com outro, precisei inseri campos no form e agora o php só envia o e-mail do remetente e a msg e o anexo!!!, já tentei td q pude imaginar e nada.Os códigos estão assim:upload.htm<body><form action="up.php" method="post" enctype="multipart/form-data" name="cartao" id="form1"> <table width="740" border="0" align="center" bgcolor="#FFFFFF"> <tr> <td width="295"><div align="right">Nome:</div></td> <td width="435"><div align="left"> <input name="nome" type="text" id="nome" /> </div></td> </tr> <tr> <td><div align="right"> <p>E-mail:</p> </div></td> <td><div align="left"> <input name="email_from" type="text" id="email_from" /> </div></td> </tr> <tr> <td><div align="right">Telefone:</div></td> <td><div align="left"> <input name="telefone" type="text" id="telefone" /> </div></td> </tr> <tr> <td><div align="right">Assunto:</div></td> <td><div align="left"> <input name="Assunto" type="text" id="assunto" /> </div></td> </tr> <tr> <td><div align="right">Mensagem:</div></td> <td><div align="left"> <textarea name="mensagem" cols="40" rows="10" id="mensagem"></textarea> </div></td> </tr> <tr> <td colspan="2"><div align="center"> </div></td> </tr> <tr> <td colspan="2"><div align="center"> <input name="arquivo" type="file"> </div></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Enviar" /> </div></td> </tr> </table></form></body>up.php<?php//pego os dados enviados pelo formulario$nome = $_POST["nome"];$email_from = $_POST["email_from"];$email = $_POST["giro@gironosbairros.com.br"];$telefone = $_POST["telefone"];$mensagem = $_POST["mensagem"];$assunto = $_POST["assunto"];//formato o campo da mensagem$mensagem = wordwrap( $mensagem, 50, "<br>", 1);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"; $mensagem .= $telefone."<br />";$mensagem .= $assunto."<br />";$mensagem .= $email_from."<br />";$mensagem .= $nome."<br />";$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("giro@gironosbairros.com.br",$assunto,$mens,$headers,$telefone); 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("gnb@gironosbairros.com.br",$assunto,$mens,$headers,$mensagem);;echo"Email enviado com Sucesso!"; }?>Bom, já tentei de td aqui e nao consigo fazer com que o e-mail receba os campos do html, o assunto e o telefone n~qao são enviados.Alguém pode ajudar?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra min sempre aparece esse erroWarning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\webmaster\email\envia.php on line 63Email enviado com Sucesso!eu so novo em php e no sei oque isso significa alguem pode mi ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite!Sou novo aqui e estou estudando PHP. Estou montando um pequeno sistema para envio de emails com anexo a partir de dicas pela Internet, mas esbarrei em um problema que não estou conseguindo resolver. Estou usando para testar o programa o Magic Winmail. O PHP, Apache e Winmail estão configurados corretamente e já testei o envio e recebimento de email (com e sem anexo) com o Outlook e o Eudora. Quando envio um email sem anexo com o programa que fiz tudo funciona perfeitamete, mas quando envio um email com anexo não aparece o texto do corpo (body message) e o anexo aparece com o tamanho zerado. Quando desanexo, o arquivo está vazio. Alguém tem alguma dica? :huh: Seguem os arquivos...Index.html<html> <head> <script language="JavaScript" type="text/JavaScript"> function checa_formulario(email) { if (email.nome.value == "") { alert("Por Favor nao deixe o seu nome em branco!!!"); email.nome.focus(); return (false); } if (email.email_from.value == "") { alert("Por Favor nao deixe o seu email em branco!!!"); email.email_from.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>Formulário de Envio de Email</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> <!-- .titulo { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #003399; } .texto { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; border: thin dashed #CCCCCC; } --> </style> </head> <body onload="document.email.nome.focus();"> <table width="500" height="128" border="0" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC"> <tr> <td height="21"><p class="titulo">Formulário de Envio de Email</p></td> </tr> <tr> <td height="107"> <form action="envia.php" method="post" enctype="multipart/form-data" name="email" id="email" onsubmit="return checa_formulario(this)"> <table width="500" border="0" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC" class="texto"> <tr> <td width="250" height="20" align="center" valign="middle">Seu nome: <input name="nome" type="text" id="nome" size="25" /></td> <td width="250" height="30" align="center" valign="middle">Seu email: <input name="email_from" type="text" id="email_from" size="25" /></td> </tr> <tr align="center" valign="middle"> <td height="30" colspan="2">Email do destinatário: <input name="email" type="text" id="email" size="56" /></td> </tr> <tr align="center" valign="middle"> <td height="30" colspan="2">Assunto: <input name="assunto" type="text" id="assunto" size="68" /></td> </tr> <tr align="center" valign="middle"> <td height="100" colspan="2">Mensagem: <textarea name="mensagem" cols="50" rows="5" id="mensagem"></textarea></td> </tr> <tr align="center" valign="middle"> <td height="30" colspan="2">Arquivo: <input type="hidden" name="MAX_FILE_SIZE" value="20000" /> <input name="arquivo" type="file" id="arquivo" size="48" /></td> </tr> <tr align="center" valign="middle"> <td height="28" colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar" /> <input name="apagar" type="reset" id="apagar" value="Apagar" /></td> </tr> </table> </form> </td> </tr></table></body></html>envia.php<?php //pega os dados enviados pelo usuário $nome = $_POST["nome"]; $body = $_POST["mensagem"]; $to = $_POST["email"]; $from = $_POST["email_from"]; $subject = $_POST["assunto"]; $attach = $_FILES["arquivo"]["tmp_name"]; $attach_name = $_FILES["arquivo"]["name"]; $attach_size = $_FILES["arquivo"]["size"]; $attach_type = $_FILES["arquivo"]["type"]; $erro = $_FILES["arquivo"]["error"];//se houver $notificar = $from; //Envio de notificação de recebimento quando necessário $prioridade = "3"; //Prioridade no envio do email vai de 1 a 3. A prioridade 1 é alta Prioridade if($erro > 0) print("$erro <br>"); /* UPLOAD_ERR_OK Valor: 0; não houve erro, o upload foi bem sucedido. UPLOAD_ERR_INI_SIZE Valor 1; O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini. UPLOAD_ERR_FORM_SIZE Valor: 2; O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML. UPLOAD_ERR_PARTIAL Valor: 3; o upload do arquivo foi feito parcialmente. UPLOAD_ERR_NO_FILE Valor: 4; Não foi feito o upload do arquivo. */ //verifica se o email do destinatário é válido 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])?$", $to)) { echo"<center>Digite um email valido</center>"; echo "<center><a href=\"java script:history.go(-1)\">Voltar</center></a>"; exit; } //verifica se o email do remetente é válido 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])?$", $from)) { echo "<center>Digite um email valido</center>"; echo "<center><a href=\"java script:history.go(-1)\"><center>Voltar</center></a>"; exit; } //define a mensagem tirando barras para evitar problemas no script $body_msg = stripslashes($body); $body_msg = wordwrap( $body_msg, 50, "<br>", 1); //mensagem no formato html $html = '<html><head> <title>Birthday Reminders for August</title></head><body><p>Here are the birthdays upcoming in August!</p><table> <tr> <th>Person</th><th>Day</th><th>Month</th><th>Year</th> </tr> <tr> <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> </tr> <tr> <td>Sally</td><td>17th</td><td>August</td><td>1973</td> </tr></table></body></html>'; //verifica se tem arquivo anexo if ($attach != null) { //abre o arquivo para codificá-lo no formato de email $file = fopen($attach, "rb"); $contents = fread($file, $attach_size); //$contents = fread($file, filesize($attach)); $encoded_attach = chunk_split(base64_encode($contents)); fclose($file); //define os headers de envio $mailheaders = "From: \"$nome\" <$from>, webmaster@".$_SERVER['SERVER_NAME'].".com.br\r\n"; $mailheaders .= "Reply-To: $from\n"; $mailheaders .= "To: Teste de Email com anexo <$to>, Kelly <kelly@example.com>\r\n"; $mailheaders .= "Cc: birthdayarchive@example.com\r\n"; $mailheaders .= "Bcc: birthdaycheck@example.com\r\n"; //informações extras $mailheaders .= "X-Priority: $prioridade\r\n"; $mailheaders .= "X-Mailer: PHP/" . phpversion() . "\r\n"; $mailheaders .= "Message-ID: <". date(dmy) .time() .rand(1,1000). "@".$_SERVER['SERVER_NAME'].">\r\n"; //define o separador $boundary = "XYZ--------___ " . date("dmYis") . " ___--------ZYX"; //define os headers da mensagem e do anexo $mailheaders .= "Content-Type: multipart/mixed;\r\n"; $mailheaders .= "boundary=\"" . $boundary . "\"\r\n"; $mailheaders .= "MIME-Version: 1.0\r\n"; //$mailheaders .= "Disposition-Notification-To: $notificar\r\n\n"; //Caso queira notificar o recebimento //$mailheaders .= "Content-Transfer-Encoding: 8BIT\r\n"; //$mailheaders .= "X-Attachments: $attach_name\r\n\n"; //define a mensagem $body_top = $boundary . "\r\n"; $body_top .= "Content-Type: text/plain;\r\n"; //$body_top .= "Charset=\"iso-8859-1\"\r\n"; //mensagem no formato texto acentuado $body_top .= "Charset=us-ascii\r\n"; //mensagem no formato HTML $body_top .= "Content-Transfer-Encoding: base64\r\n"; $body_top .= "Content-Description: Corpo da Mensagem\r\n\n"; $msg = $body_top . $body_msg; //$msg = $body_top . $body_msg . $html; $msg .= "\r\n\n"; $msg .= $boundary . "\r\n"; //$msg .= "Content-Disposition: attachment; filename=\"$attach_name\"\r\n"; $msg .= "Content-Type: $attach_type; name=\"$attach_name\";\r\n"; $msg .= "Content-Transfer-Encoding: base64\r\n"; $msg .= $encoded_attach; $msg .= "\r\n"; $msg .= $boundary . "\r\n"; //envia o email para as variáveis já definidas e tratadas e mostra mensagem de sucesso $result = mail($to, stripslashes($subject), $msg, $mailheaders); if($result) { echo"Enviado Email e Anexo com Sucesso!"; echo"<br>"; echo"<a href=\"index.htm\">Voltar para página Principal</a>"; } else { print("ERRO: Não foi possível enviar email com anexo!"); echo"<br>"; echo"<a href=\"index.htm\">Voltar para página Principal</a>"; } } else { //se não tiver anexo ele envia só a mensagem com esses headers $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: \"$nome\" <$from>\r\n"; $result = mail($to, stripslashes($subject), $body_msg, $headers); if($result) { echo"Enviado Email com Sucesso!"; echo"<br>"; echo"<a href=\"index.htm\">Voltar para página Principal</a>"; } else { print("ERRO: Não foi possível enviar email com anexo!"); echo"<br>"; echo"<a href=\"index.htm\">Voltar para página Principal</a>"; }}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

GALERA,ESTOU TENTANDO FAZER O FORMULARIO COM ENVIO DE ANEXO, MAS NAO CONSIGO SO DA ERRO... NAO SEI O QUE ESTOU FAZENDO ERRADO, ESTOU ENVIANDO O CODIGO ABAIXO... QUANDO EU TIRO A PARTE DO CODIGO PARA ENVIAR ANEXO ELE FUNCIONA E QUANDO COLOCO DA PAU.. ALGUEM SABE COMO FAÇO PARA INCLUIR TAMBÉM RESPOSTA AUTOMATICA :<? $nome=$_POST["nome"];$email=$_POST["email"];$email2=$_POST["email2"];$msn=$_POST["msn"];$skype=$_POST["skype"];$telefone=$_POST["ddd"]."/".$_POST["fone"]."/".$_POST["ramal"];$celular="(".$_POST["ddd"].") ".$_POST["celular"];$fax="(".$_POST["ddd"].") ".$_POST["fax"];$pais=$_POST["pais"]."/".$_POST["cidade"];$instituicao=$_POST["instituicao"];$orientador=$_POST["orientador"];$tipo_trabalho=$_POST["tipo_trabalho"];$periodo=$_POST["periodo"];$materia=$_POST["materia"];$formacao=$_POST["formacao"];$titulo=$_POST["titulo"];$tema=$_POST["tema"];$disciplina=$_POST["disciplina"];$palavras=$_POST["palavras"];$entrega1=$_POST["entrega1"];$entrega2=$_POST["entrega2"];$entrega3=$_POST["entrega3"];$entrega4=$_POST["entrega4"];$descricao=$_POST["descricao"];$sumario=$_POST["sumario"];$problema=$_POST["problema"];$objetivos=$_POST["objetivos"];$bibliografia=$_POST["bibliografia"];$analise=$_POST["analise"];$adicionais=$_POST["adicionais"];$paginas=$_POST["paginas"];$termo=$_POST["termo"];$to = "email@email.com.br";$subject = "***CADASTRO***"; $body = "***********************************".chr(10)."MENSAGEM ENVIADA EM: ".date('d/m/y H:i').chr(10)."***********************************".chr(10).chr(10);$body .= "NOME_COMPLETO: $nome".chr(10).chr(10);$body .= "EMAIL_PRINCIPAL: $email".chr(10).chr(10);$body .= "EMAIL_SECUNDARIO: $email2".chr(10).chr(10);$body .= "MESSENGER: $msn".chr(10).chr(10);$body .= "SKYPE: $skype".chr(10).chr(10);$body .= "TELEFONE: $telefone".chr(10).chr(10);$body .= "CELULAR: $celular".chr(10).chr(10);$body .= "FAX: $fax".chr(10).chr(10);$body .= "PAIS: $pais".chr(10).chr(10);$body .= "INSTITUICAO: $instituicao".chr(10).chr(10);$body .= "ORIENTADOR: $orientador".chr(10).chr(10);$body .= "TIPO_DE_TRABALHO: $tipo_trabalho".chr(10).chr(10);$body .= "PERIODO_ESCOLAR: $periodo".chr(10).chr(10);$body .= "MATERIA: $materia".chr(10).chr(10);$body .= "FORMACAO_ACADEMICA: $formacao".chr(10).chr(10);$body .= "TITULO_DO_TRABALHO: $titulo".chr(10).chr(10);$body .= "TEMA_DO_TRABALHO: $tema".chr(10).chr(10);$body .= "DISCIPLINA: $disciplina".chr(10).chr(10);$body .= "PALAVRAS_CHAVES: $palavras".chr(10).chr(10);$body .= "PREVIA1: $entrega1".chr(10).chr(10);$body .= "PREVIA2: $entrega2".chr(10).chr(10);$body .= "ENTREGA_FINAL: $entrega3".chr(10).chr(10);$body .= "DATA_MAXIMA: $entrega4".chr(10).chr(10);$body .= "DESCRICAO_DO_TRABALHO: $descricao".chr(10).chr(10);$body .= "SUMARIO: $sumario".chr(10).chr(10);$body .= "PROBLEMA: $problema".chr(10).chr(10);$body .= "OBJETIVOS: $objetivos".chr(10).chr(10);$body .= "BIBLIOGRAFIAS: $bibliografia".chr(10).chr(10);$body .= "SITES_PARA_ANALISE: $analise".chr(10).chr(10);$body .= "INFORMACOES_ADICIONAIS: $adicionais".chr(10).chr(10);$body .= "PAGINAS: $paginas".chr(10).chr(10);$body .= "TERMO_ADESAO: $termo".chr(10).chr(10);#echo "$body";$nome_remetente = "Administrador";$email_remetente = "email@email.com.br";$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";mail($to,$assunto,$mens,$headers); echo"Email enviado com Sucesso!"; }else{$headers = "MIME-Version: 1.0\r\n";$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";$headers .= "SOLICITAÇÃO DE ORÇAMENTO \"$nome\" <$email_from>\r\n";mail($to,$assunto,$mens,$headers); echo"Email enviado com Sucesso!"; }?>

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.