Autor | Zpráva | ||
---|---|---|---|
radas Profil * |
#1 · Zasláno: 29. 12. 2010, 10:52:27
Zdravím,
snažim si udělat formulař, který zvládne posílani přilohy, bohužel na email mi chodi jen zakodovany text a pořad nevím kde je problém jo jasně uričtě bych mohl použít hotové řešení, jenže bych se to chtěl naučit a pochopit, proto se s tím patlam :( třeba někdo uvidi, v čem je problém $uid = strtoupper(md5(uniqid(time()))); $nazev ="nazev webu"; $www="wwww.xxxxxxx.cz"; function zakoduj($text) { return "=?utf-8?B?".base64_encode($text)."?="; } function odesli_mail($komu, $predmet, $telo,$kontakt) { global $uid; global $nazev; global $www; $hlavicka = "MIME-Version: 1.0\n"; $hlavicka.= "Content-Type: multipart/mixed;\n\t"; $hlavicka .= "boundary=".'"'."$uid".'"'."\n"; $hlavicka.= "From: $nazev <$kontakt>\n"; $hlavicka.= "Reply-To: $kontakt\n"; $body = $telo; $body.= "<br /><br />přejeme hezký den!<br /> <b>".$nazev."</b><br /> <b>".$www." </b>"; $predmet = zakoduj($predmet); mail($komu, $predmet, $telo, $hlavicka); } $email_message = "This is a multi-part message in MIME format.\n"; $email_message .= "\n--$uid\n"; $email_message .= "Content-Type: text/plain;\n\t"; $email_message .= "charset=\"utf-8\"\n"; $email_message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $email_message .= "\n".$_POST['zprava']."\n\n"; if (isset ($_FILES['obr']['name'])) { for ($n = 0; $n <= count($_FILES['obr']['name']); $n++) { $pripona =strtolower( pathinfo($_FILES['obr']['name'][$n], PATHINFO_EXTENSION)); $jmeno=explode(".",$_FILES['obr']['name'][$n]); //zbavuji se české diakritiky a nechtěných znaku... $nazev=StrTr($jmeno[0],$prevodni_tabulka); $soubor = $nazev. ".". $pripona; move_uploaded_file($_FILES['obr']['tmp_name'][$n], "files/".$soubor); //zde je vše ok ... $fileatt = "files/".$soubor; // Cesta k souboru $fileatt_type = $_FILES['obr']['type'][$n]; // Typ souboru $fileatt_name = $_FILES["obr"]["name"][$n]; // Název souboru připojeného k e-mailu v příloze $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); $data = chunk_split(base64_encode($data)); $email_message .= "--$uid\n" . "Content-Type: $fileatt_type; name=\"$fileatt_name\"\r\n" . "Content-Transfer-Encoding: base64\n\n" . "Content-Disposition: attachment; filename=\"$fileatt_name\"\n" . $data . "\n\n"."--$uid--\n"; fclose($file); } } $email_message.= "--$uid--\n"; odesli_mail("komu@domana.cz", $_POST['predmet'], $email_message,"odkoho@domena.cz"); |
||
Davex Profil |
#2 · Zasláno: 29. 12. 2010, 19:33:22
Je tam nějaký zmatek v koncích řádku. Zkus to změnit takto (u 2. a 3. odebrat jedno
\r a \n , a u 4. jeden přidat:
$email_message .= "--$uid\n" . "Content-Type: $fileatt_type; name=\"$fileatt_name\"\n" . "Content-Transfer-Encoding: base64\n" . "Content-Disposition: attachment; filename=\"$fileatt_name\"\n\n" . |
||
radas Profil * |
#3 · Zasláno: 29. 12. 2010, 23:26:31
Davex:
děkuji, už to pošle jeden soubor ale ještě to nedokaže poslat dva a více souboru :( vždy jen posledni z vybranych... |
||
Alphard Profil |
#4 · Zasláno: 30. 12. 2010, 22:07:52
[#3] radas
Dejte sem raději zdroják té zprávy. Ten rozsypaný čaj base64 samozřejmě zkraťte. |
||
radas Profil * |
#5 · Zasláno: 31. 12. 2010, 13:10:15
Alphard:
myslite jako hlavičku e-mailu? X-Spam-Status: score=0 X-Esetresult: clean X-Spam-Status: score=0 Received: *** Received: by* id EB992B0200C; Wed, 29 Dec 2010 23:59:10 +0100 (CET) To: xxx@xxxx.cz Subject: =?iso-8859-2?Q?=E8ern=FD=20k=F9=F2=20b=EC=BEel=20po=20zelen=E9=20lo=F9ce?= Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="8F516D2BD85266CB4583E3036600268D" From: xxx@xxxx.cz Reply-To: xxx@xxxx.cz Message-Id: <20101229225910.EB992B0200C@****> Date: Wed, 29 Dec 2010 23:59:10 +0100 (CET) X-Smtpd: 1.2.14@16206 X-Session: 45 X-Country: CZ to je vše co jsem získal z toho emailu... jen se divim že tam právě není base64 .. |
||
radas Profil * |
#6 · Zasláno: 1. 1. 2011, 14:35:16
upload funguje, soubor se objevi ve složce, ale k emailu se nepřipoji..za to když pošlu mail bez přilohy tak se mi tam automaticky přida prázdny soubor..už s tim laboruji a nevím kde by byla chyba:(
|
||
Davex Profil |
#7 · Zasláno: 1. 1. 2011, 16:55:49
Konec těla zprávy
"--$uid--\n" dej jen za poslední vložený soubor a ne za každý,
|
||
radas Profil * |
#8 · Zasláno: 1. 1. 2011, 19:06:03
Davex:
děkuji Vám pomohlo to.. |
||
Časová prodleva: 13 let
|
0