Ir ao conteúdo
  • Cadastre-se

função mail com anexo


claudiojz

Posts recomendados

Olá amigos

No meu site o usuário cadastra-se e ganha um brinde que é um arquivo de nome "brindes.zip" que já está no servidor. Como vocês podem ver abaixo o nome do arquivo eu já coloquei direto.

Quando faço os teste recebo o e-mail porém o anexo não chega, alguém tem uma ideia de como poderia fazer para enviar anexos automaticamente?

$attach = $_FILES["brindes.zip"]["tmp_name"];

$attach_name = $_FILES["brindes.zip"]["name"];

$attach_size = $_FILES["brindes.zip"]["size"];

$attach_type = $_FILES["brindes.zip"]["type"];

$assunto .="Confirmação de e-mail";

$msg_body .=" AQUI VAI A MENSAGEM";

//abre o arquivo para codificá-lo no formato de email

$file = fopen($attach, "r");

$contents = fread($file, $attach_size);

$encoded_attach = chunk_split(base64_encode($contents));

fclose($file);

//define os headers do anexo e da mensagem

$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";

//envia o email para as variáveis já definidas e tratadas e mostra mensagem de sucesso

mail("$email", stripslashes($assunto), $msg_body, $mailheaders);

header("Location:index.php");

}

Link para o comentário
Compartilhar em outros sites

Outra coisa que eu estava reparando é o seguinte:

quando atribuo um valor para a variavel $email com endereço de gmail o dono deste endereço do gmail não recebe. Agora se no lugar da variavel $email eu escrever por extenso o endereço ai o destinatário recebe a mensagem. Estranho não, ou será que estou pecando em algo?

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 3 anos depois...
  • Moderador
Eu não entendo nada de php, vou começar meu curso mês q vem. Teria como enviar os arquivos completo que o senhor criou. eu preciso enviar ao invés do zip um arquivo PDF. eu precisava do arquivo form, o arquivo php. Obrigado.

Abraços.

William

é altamente recomendado usar a classe phpmailer. é bem simples de usar. e resolve a maioria dos problemas em envios de emails

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...