• 8 odgovora
  • 5.018 pregleda
mail attachment 21.08.2003. u 10:38 · pre 282 meseci #1
Napravio sam web obrazac u kome posetilac treba da unese neke podatke i posalje jpg sliku. Podaci se salju na unapred zatadi email. Sve to mi lepo radi osim sto OutlookExpresss ne prepoznaje JPG attachment nego ga prikazuje kao kodiran tekst u okviru teksta poruke.

Kada poruku snimim u datoteku pa rucno dekodujem dobijem sipravnu sliku.

Da li je neko radio nesto slicno? Kako da izvedem da Outlook Express prikaze attachment kao attachment?

Evo kod koji koristim:

Code:

$fp = fopen($foto['tmp_name'], "r");
$file = fread($fp, $foto[size]);
$file = chunk_split(base64_encode($file));
$mail_body.="slika = $foto[name]\n\n";
         $mail_body.="=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n";
$mail_boundary = md5(uniqid(time()));
$mail_body.= "MIME-Version: 1.0\r\n";
$mail_body.= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"\r\n\r\n";
$mail_body.= "This is a multi-part message in MIME format.\r\n\r\n";
$mail_body.= "--$mail_boundary\r\n";
$mail_body.= "Content-type:text/plain;charset=US-ASCII\r\n";
$mail_body.= "Content-transfer-encoding:7BIT\r\n\r\n";
$mail_body.= "--$mail_boundary\r\n";
$mail_body.= "Content-type:image/pjpeg;name=$foto[name]\r\n";
$mail_body.= "Content-transfer-encoding:base64\r\n\r\n";
$mail_body.= $file . "\r\n\r\n";
$mail_body.= "--$mail_boundary--";
$mail_body.= "\r\n";

// ispis na disk
// $file=fopen("prijava.txt","w");
// fwrite($file,$mail_body);
// fclose($file);
     
mail ($mail_to,$mail_subject,$mail_body,$mail_headers));


Re: mail attachment 21.08.2003. u 11:51 · pre 282 meseci #2
Gledajucio jedan mail vidim da ima header:
Citat:
Content-Type: image/jpeg;
name="slika.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="slika.jpg"


Dakle, probaj da dodas:

$mail_body.= "Content-Disposition: attachment;filename=$foto[name]\r\n";

posle

$mail_body.= "Content-transfer-encoding:base64\r\n\r\n";

P.S. I nadam se da ti je samo ovde typo na pjpeg:
$mail_body.= "Content-type:image/pjpeg;name=$foto[name]\r\n";

P.P.S. Ovo ce sliku prikazivati kao attachment, a ako hoces "inline" ne znam kako ide...
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: mail attachment 21.08.2003. u 12:14 · pre 282 meseci #3
inline bi isto bilo, stim što bi druga mime "sekvenca" išla kao HTML poruka, gde je img src=neki link koji vodi na prvu sekvencu. Mada sam ja apsolutno protiv HTML email-a.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: mail attachment 21.08.2003. u 13:01 · pre 282 meseci #4
Haam...
A zašto mail headere trpa u message parametru umesto header?

Odnosno, sintraxa valjda ide ovako:

mail('KOME','SUBJECT','PORUKA E MAILA','Headeri su ovde i ovde se stavlja attachment');

Ili ja nešto grešim?

~Say FiQ
Re: mail attachment 21.08.2003. u 13:45 · pre 282 meseci #5
Vidis, to nisam primetio... da, u pravu si za sintaksu ako se dobro secam, samo nisam siguran gde idu ti attach-i... valjda bi logicnije bilo u headeru...
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: mail attachment 21.08.2003. u 15:03 · pre 282 meseci #6
Brokeru, sto ne kroistis Lemos-ovu klasu za slanje MIME mejlova (ima podrsku i za multipart poruke/mejlove, sto tebi treba)?
Nalazi se na http://phpclasses.upperdesign.com najboljem PHP sajtu u Mlecnom Putu, a mozda i sire - mozda su i Andromedjani culi za taj sajt...
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: mail attachment 24.08.2003. u 10:04 · pre 282 meseci #8
Probao sam da pogeldam preporucene linkove ali jedan ne rad a ana drugom je sve nesto zbrljano...

No sredio sam skript... bili ste upravu.. uospte nisam primetio da sam ono sto treba da ide u zaglavlje poslao u telo poruke...

evo ispravan kod za mail attachment

Code:

$fp = fopen($foto['tmp_name'], "r");
$file = fread($fp, $foto[size]);
$file = chunk_split(base64_encode($file));
$mail_body.="slika = $foto[name]\n\n";
            $mail_body.="=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n";
$mail_boundary = md5(uniqid(time()));
$mail_headers.= "MIME-Version: 1.0\r\n";
$mail_headers.= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"\r\n";
$mail_body.= "This is a multi-part message in MIME format.\r\n\r\n";
$mail_body.= "--$mail_boundary\r\n";
$mail_body.= "Content-type:text/plain;charset=US-ASCII\r\n";
$mail_body.= "Content-transfer-encoding:7BIT\r\n\r\n";
$mail_body.= "--$mail_boundary\r\n";
$mail_body.= "Content-type:image/jpeg;name=$foto[name]\r\n";
$mail_body.= "Content-transfer-encoding:base64\r\n";
$mail_body.= "Content-Disposition: attachment;filename=\"$foto[name]\"\r\n\r\n";
$mail_body.= $file . "\r\n\r\n";
$mail_body.= "--$mail_boundary--";
$mail_body.= "\r\n";

// ispis na disk
//$file=fopen("prijava.txt","w");
//fwrite($file,$mail_body);
//fclose($file);
// -------------
        
mail ($mail_to,$mail_subject,$mail_body,$mail_headers);

Re: mail attachment 24.08.2003. u 19:07 · pre 282 meseci #9
Citat:
broker:
Napravio sam web obrazac u kome posetilac treba da unese neke podatke i posalje jpg sliku. Podaci se salju na unapred zatadi email. Sve to mi lepo radi osim sto OutlookExpresss ne prepoznaje JPG attachment nego ga prikazuje kao kodiran tekst



<?php

function sendmsg($to, $subject, $text, $from, $file, $type) {
$content = fread(fopen($file,"r"),filesize($file));
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));
$name = basename($file);
$ip = getenv("REMOTE_ADDR");

$header = "From: $from\nReturn-Path: $from\nReply-To: $from\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=$uid\n";
$header .= "IPaddres : $ip\n";

$header .= "--$uid\n";
$header .= "Content-Type: text/plain\n";
$header .= "Content-Transfer-Encoding: 8bit\n\n";
$header .= "$text\n";

$header .= "--$uid\n";
$header .= "Content-Type: $type; name=\"$name\"\n";

$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-Disposition: attachment; filename=\"$name\"\n\n";
$header .= "$content\n";

$header .= "--$uid--";

mail($to, $subject, "", $header);

return true;
}

sendmsg("[email protected]","txt","txt2","[email protected]","slika.jpg","image/jpeg")


?>
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme