Enviar e-mail com anexo em PHP

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Enviar e-mail com anexo em PHP

Mensagempor riapa » Segunda Out 06, 2008 17:09

Boas!

Gostava de arranjar um script que me permitisse enviar um e-mail com um anexo.
De muitos scripts que encontrei na net, e depois de algumas modificações, não consigo fazer com que o anexo fique na mensagem.
O ultimo script que encontrei é o seguinte:

Código: Seleccionar todos
<?php
$fileatt = "foto"; // Path to the file
$fileatt_type = "image/jpg"; // File Type
$fileatt_name = "Foto"; // Filename that will be used for the file as the attachment

$email_from = "sales@mysite.com"; // Who the email is from
$email_subject = "Your attached file"; // The Subject of the email
$email_message = "Thanks for visiting mysite.com! Here is your free file.<br>";
$email_message .= "Thanks for visiting.<br>"; // Message that the email has in it

$email_to = $_POST['email']; // Who the email is to

$headers = "From: ".$email_from;

$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);

$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";

$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$email_message .= "\n\n";

$data = chunk_split(base64_encode($data));

$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data .= "\n\n" .
"--{$mime_boundary}--\n";

$ok = @mail($email_to, $email_subject, $email_message, $headers);
?>


O objectivo é enviar uma imagem (.jpg) através de um form de um website. A imagem não está no servidor mas sim no computador da pessoa.
A variável 'foto' será a variável que irá passar o caminho dessa imagem para dentro do script ($fileatt).

Se tiverem algum script que não se importem de partilhar ou tiverem interesse em ajudar-me a meter este a funcionar agradeço muito.

Cumprimentos ;)
Avatar do Utilizador
riapa
Membro Diamante
Membro Diamante
 
Mensagens: 1144
Registado: Terça Jan 03, 2006 18:23

Mensagempor riapa » Quarta Out 08, 2008 0:37

Então programadores nenhuma ideia? :roll:
Avatar do Utilizador
riapa
Membro Diamante
Membro Diamante
 
Mensagens: 1144
Registado: Terça Jan 03, 2006 18:23

Mensagempor fyngr » Quarta Out 08, 2008 7:38

fiz uma pesquisa no google e apareceu-me isto..
não sei se dá, nunca trabalhei mt com php
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor riapa » Quarta Out 08, 2008 15:40

Já tinha visto esse site. Está muito bem explicado mas infelizmente o ficheiro tem que se encontrar no servidor:


$fileatt = "/public_html/pdfs/mypdf.pdf";
$fileatttype = "application/pdf";
$fileattname = "newname.pdf";


São bem vindas mais sugestões :cool:
Obrigado.
Avatar do Utilizador
riapa
Membro Diamante
Membro Diamante
 
Mensagens: 1144
Registado: Terça Jan 03, 2006 18:23


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron