Enviar E-Mail Com Anexo (Atualizado!)
#61
Posted 05/07/2009, 18:07
Não quase nada de php, só de html e css e estou precisando montar um formulário com envio de anexo. Com as informações que me passaram aí em cima, não tenho idéia de como montar, será que teriam a manha de me explicar como faço isso?
Agradeço,
7
#62
Posted 04/08/2009, 15:25
$message .= "Content-Transfer-Encoding: 8bits\n"; $message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
o correto é:
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n"; $message .= "Content-Transfer-Encoding: 8bit\n";
8bits <> 8bit
vejam:
http://www.zend.com/...eemailpart1.php
#63
Posted 13/08/2009, 16:21
$verifica_ext = true; $c = 1; $arq[1] = $anexo; $arq[2] = $anexo2; $arq[3] = $anexo3; $arq[4] = $anexo4; $arq[5] = $anexo5; while ($c < 6){ $attachments[1] = $arq[$c]; foreach ($attachments as $key => $full_path) { if ($full_path !='') { if (file_exists($full_path)){ if ($fp = fopen($full_path,"rb")) { $filename = array_pop(explode(chr(92),$full_path)); $contents = fread($fp,filesize($full_path)); $encoded = base64_encode($contents); $encoded_split = chunk_split($encoded); fclose($fp); $message .= "--$boundary\n"; $message .= "Content-Type: $anexo_type\n"; $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n"; $message .= "Content-Transfer-Encoding: base64\n\n"; $message .= "$encoded_split\n"; $extensao = substr($anexo_name,-4); if ($extensao != ".jpg" && $extensao != ".png" && $extensao != "jpeg" && $extensao != ".gif" && $anexo_name != ""){ $verifica_ext = false; } } else { echo "Impossível abrir o arquivo$key: $filename"; $ABORT = TRUE; } } else { echo "O arquivo$key não existe: $filename"; $ABORT = TRUE; } } } $c++; }
porém os arquivos vem todos com o mesmo nome e se eu colocar um arquivo q nao seja foto no 2º ou 3º anexo que nao seja foto ele nao percebe e envia do msm jeito
#64
Posted 12/09/2009, 16:04
#65
Posted 13/09/2009, 00:42
Bom, esse script está um tanto quanto velho.
E na ocasião, revisando o código parece que foi feito com a idéia de que a diretiva register_globals do PHP está ativada, o que hoje em dia não é nada seguro.
Sendo assim, tente trocar as variáveis vindas do formulário passando a utilizar $_POST, como por exemplo $_POST['action'] no lugar de simplesmente $action e assim por diante.
Prometo que vou arrumar um tempo para atualizar este script.
[]'sAté mais
#66
Posted 15/09/2009, 01:17
<?php if ($_POST['action'] != "upload") { print ' <FORM METHOD="post" ENCTYPE="multipart/form-data"> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000"> <INPUT TYPE="hidden" NAME="action" VALUE="upload"> <TABLE BORDER="1"> <TR> <TD>De: </TD> <TD><input type="text" name="from" size=40><BR></TD> </TR> <TR> <TD>Para: </TD> <TD><input type="text" name="to" size=40><BR></TD> </TR <TR> <TD>Assunto: </TD> <TD><input type="text" name="subject" size=40><BR></TD> </TR <TR> <TD>Cc: </TD> <TD><input type="text" name="cc" size=40><BR></TD> </TR <TR> <TD>Bcc: </TD> <TD><input type="text" name="bcc" size=40><BR></TD> </TR <TR> <TD>Mensagem: </TD> <TD><TEXTAREA NAME="body" ROWS="10" COLS="50"></TEXTAREA></TD> </TR> <TR> <TD>Anexo: </TD> <TD><INPUT TYPE="file" NAME="anexo"></TD> </TR> <TR> <TD COLSPAN="2"><INPUT TYPE="submit" VALUE="Enviar"></TD> </TR> </TABLE> </FORM> '; } if ($_POST['action'] == "upload") { $mime_list = array("html"=>"text/html","htm"=>"text/html", "txt"=>"text/plain", "rtf"=>"text/enriched","csv"=>"text/tab-separated-values","css"=>"text/css","gif"=>"image/gif"); $ABORT = FALSE; $boundary = "XYZ-" . date(dmyhms) . "-ZYX"; $message = "--$boundary\n"; $message .= "Content-Transfer-Encoding: 8bits\n"; $message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n"; $message .= $_POST['body']; $message .= "\n"; $anexo = $_FILES['anexo']; $attachments[1] = $anexo; foreach ($attachments as $key => $full_path) { if ($full_path !='') { if (file_exists($full_path)){ if ($fp = fopen($full_path,"rb")) { $filename = array_pop(explode(chr(92),$full_path)); $contents = fread($fp,filesize($full_path)); $encoded = base64_encode($contents); $encoded_split = chunk_split($encoded); fclose($fp); $message .= "--$boundary\n"; $message .= "Content-Type: $anexo_type\n"; $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n"; $message .= "Content-Transfer-Encoding: base64\n\n"; $message .= "$encoded_split\n"; } else { echo "Impossível abrir o arquivo$key: $filename"; $ABORT = TRUE; } } else { echo "O arquivo$key não existe: $filename"; $ABORT = TRUE; } } } $message .= "--$boundary--\r\n"; $headers = "MIME-Version: 1.0\n"; $headers .= "From: <$from>\r\n"; $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n"; $mensagem=mail($_POST['to'], $_POST['subject'], $message, $headers); if ($mensagem) { print "Mensagem enviada!"; } else { print "O envio da mensagem falhou!"; } } ?>
#67
Posted 15/09/2009, 10:12
É bastante simples a utilização como você pode ver no exemplo, basta ter um formulário e iniciar a classe definindo os parâmetros.
Qualquer dúvida basta postar.
[]'s Até mais
#68
Posted 24/09/2009, 15:57
akele abraço!
http://www.guilhermevenerato.com
#69
Posted 29/11/2009, 20:37
--//Helping link your world in the web\\--
Twitter: @soswebdesign
Orkut: http://www.orkut.com...669640926212584
FaceBook: http://www.facebook.com/?ref=home#!/profile.php?ref=profile&id=100001018360487
#70
Posted 30/11/2009, 08:20
[]'sAté mais
#71
Posted 26/01/2010, 22:26
No exemplo que eu dei no tópico, no lugar de $_POST['to'] você coloca seu e-mail e no formulário você retira o campo de destinatário.
[]'s
amigos eu tentei aki porem deu esse erro
Warning: require(class/Mail_attach.php) [function.require]: failed to open stream: No such file or directory in /home/wwwtopt/public_html/antonio/form2.php on line 12 Warning: require(class/Mail_attach.php) [function.require]: failed to open stream: No such file or directory in /home/wwwtopt/public_html/antonio/form2.php on line 12 Fatal error: require() [function.require]: Failed opening required 'class/Mail_attach.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/wwwtopt/public_html/antonio/form2.php on line 12
o q pode ser?
obrigado
#72
Posted 27/01/2010, 05:46
Ele é necessário, então feito isto você coloca em algum diretório ou mesmo junto do script que executa o envio.
[]'s Até mais
#73
Posted 27/01/2010, 22:47
Você fez o download do anexo?
Ele é necessário, então feito isto você coloca em algum diretório ou mesmo junto do script que executa o envio.
[]'s
pois é amigo eu fiz o download sim akele da classe, mas nao deu em nada, fala q enviou mas nao envia. sera q tenho q mexer em alguma coisa no site? tipo uma configuracao?
obrigado
#74
Posted 29/01/2010, 07:48
failed to open stream
Quer dizer que não encontrou o arquivo da classe.
Mostre-nos como está sua estrutura de arquivo e um trecho do seu código para podermos dar uma analisada detalhada.
[]'sAté mais
- Priscila Pereira Lima likes this
#75
Posted 01/02/2010, 12:22
// Array with allowed mime type of attachment files
private $mime_files = array(
"gif" => "image/gif",
"jpg" => "image/jpeg",
"png" => "image/png",
"cdr" => "image/cdr",
"zip" => "application/zip");
alguem pode me ajudar?
desde ja agradeço
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)