Estou tentando fazer um formulário para enviar e-mail com dois arquivos anexados (os arquivos são enviados ao meu e-mail pessoal). Copiei o código na net e tentei adaptar ao meu formulário de enviar email. O máximo que consegui receber em anexo foi um arquivo txt em branco. Alguém poderia me dar alguma dica de como faço para receber arquivos anexados no meu e-mail? Sei muito pouco de php!
Pergunta
Leviss
Olás!
Estou tentando fazer um formulário para enviar e-mail com dois arquivos anexados (os arquivos são enviados ao meu e-mail pessoal). Copiei o código na net e tentei adaptar ao meu formulário de enviar email. O máximo que consegui receber em anexo foi um arquivo txt em branco. Alguém poderia me dar alguma dica de como faço para receber arquivos anexados no meu e-mail? Sei muito pouco de php!
Form.htm
<form action="anuncio.php" method="post" enctype="multipart/form-data" >
<input type=TEXT name="nome" size=25>
<input type=TEXT name="email" size=25>
<input type=TEXT name="tipol" size=25>
<input type=TEXT name="titulo" size=25>
<textarea cols="45" rows="5" name="anuncio"></textarea>
<input type="file" name="imagem1">
<input type="file" name="imagem2">
<input type="submit" name="Submit" value=" Enviar ">
</form>
anuncio.php
<?
$nome = strip_tags( trim( $_POST['nome']));
$email = strip_tags( trim( $_POST['email']));
$tipo = strip_tags( trim( $_POST['tipo']));
$titulo = strip_tags( trim( $_POST['titulo']));
$anuncio = strip_tags( trim( $_POST['anuncio']));
$cabecalho = sprintf('From: %s <email@emal.com >', $nome);
$corpo = sprintf( 'Nome: %s, E-mail %s,
Tipo: %s
Título do anúncio: %s
Anúncio: %s', $nome, $email, $tipo, $titulo, $anuncio);
// aqui começa o código que copiei na net
$mailheaders = "From: $cabecalho\n";
$mailheaders .= "Reply-To: $cabecalho\n";
$mailheaders .= "Cc: $cabecalho\n";
$mailheaders .= "Bcc: $cabecalho\n";
$mailheaders .= "X-Mailer: Script para enviar arquivo atachado\n";
$msg_body = stripslashes($corpo);
$subject = "Novo Anúncio";
$attach = "imagem1"; // essa linha eu incluí
$attach .= "imagem2"; // essa linha eu incluí
if ($attach != "none")
{
$file = fopen($attach, "r");
$contents = fread($file, $attach_size);
$encoded_attach = chunk_split(base64_encode($contents));
fclose($file);
$mailheaders .= "MIME-version: 1.0\n";
$mailheaders .= "Content-type: multipart/mixed; ";
$mailheaders .= "boundary=\"Message-Boundary\"\n";
$mailheaders .= "Content-transfer-encoding: 7BIT\n";
$mailheaders .= "X-attachments: $attach_name";
$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain; charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";
$msg_body = $body_top . $msg_body;
$msg_body .= "\n\n--Message-Boundary\n";
$msg_body .= "Content-type: $attach_type; name=\"$attach_name\"\n";
$msg_body .= "Content-Transfer-Encoding: BASE64\n";
$msg_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
$msg_body .= "$encoded_attach\n";
$msg_body .= "--Message-Boundary--\n";
}
/* Associa à variável $mail a função mail() */
$mail = mail( "email@email.com", stripslashes($subject), $msg_body, $mailheaders);
// aqui termina o código que copiei na net
if ($mail==1) {
// o servidor recebeu a requisição corretamente
header("location:sucesso.htm");
} else {
// Erro !!!
header("location:error.htm");
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.