email s prilohou

Ahoj ahoj ahoj,

mam z intervalu.cz tento skript na poslanie mailu aj s prilohou (ktory je inak skoro rovnaky ako v knihe od pana Koska), problem je v tom ze v maily nie je ten subor ako priloha (vobec tam nie je ta spinka) ale kod toho suboru je vpisany do toho mailu. Ako pokusnu prilohu som pouzil obrazok formatu .jpg a skript som skusal len na serveroch wz.cz. Tu je kod:

<?php

$envelope["to"] = "hejho@centrum.sk";
$envelope["from"] = "john_debil@post.sk";
$envelope["cc"] = "hejho@centrum.sk";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$subor = "obr.jpg";
$fp = fopen($subor, "r");
$obsah = fread($fp, filesize($subor));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($subor);
$part2["encoding"] = ENCBINARY;
$part2["contents.data"] = $obsah;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "EMAIL S PRILOHOU";
$part3["contents.data"] = "Pozri prilohu!";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

$prem = imap_mail_compose($envelope, $body);

$h = strpos($prem, "\r\n\r\n");
$hlavicka = substr($prem, 0 , $h+2);

$telo_spravy = substr($prem, $h, strlen($prem) - $h);

if(mail("hejho@centrum.sk","Email s prilohou",$telo_spravy,$hlavicka)){echo "sprava odoslana";} else {echo "error";}
?>

neviete preco tam nie je normalna priloha, teda spinka ?
Ja ted resim neco podobneho. Nakonec jsem z mnoha ruznej clanku slepil tohle a funguje mi to. Jedinej problem je ten, ze mi ta priloha nedojde tako .txt, ale .tx.dat (nejspis to dela Outlook).


function Odeslani_objednavky($connection,$id_objednavky,$id_uzivatele)
{

$filename = "order_".str_pad($id_objednavky,6,0,STR_PAD_LEFT).".txt";
$soubor = fopen ("./folder/$filename", "w");

$email_jmeno = $jmeno;
$email_prijmeni = $prijmeni;
$email_jmeno = $email;


$obsah = " ... ";

// ZMENA KODOVANI

// prevedení z iso-8859-2 do windows-1250
$obsah = StrTr($obsah,
"\xA9\xAB\xAE\xB9\xBB\xBE",
"\x8A\x8D\x8E\x9A\x9D\x9E");

// zapis obsahu do souboru
fwrite($soubor,$obsah);
// uzavreni souboru
fclose($soubor);
unset($soubor);
// ODESLANI MAILU

$primarni_prijemce = "Jmeno Prijmeni";
$primarni_prijemce_email = "email@email.cz";
$sekundarni_prijemce = "Jmeno Prijmeni";
$sekundarni_prijemce_email = "email@email.cz";

// pøevedení z iso-8859-2 do windows-1250(pokud je potøeba)
$primarni_prijemce = StrTr($primarni_prijemce,
"\xA9\xAB\xAE\xB9\xBB\xBE",
"\x8A\x8D\x8E\x9A\x9D\x9E");
$sekundarni_prijemce = StrTr($sekundarni_prijemce,
"\xA9\xAB\xAE\xB9\xBB\xBE",
"\x8A\x8D\x8E\x9A\x9D\x9E");

/* format e-mailu */
$obalka['from'] = "=?win-1250?Q?".imap_8bit("odesilatel")."?="." <email@email.cz>\n"; // OD KOHO
$obalka['to'] = "=?win-1250?Q?".imap_8bit($primarni_prijemce)."?="." <$primarni_prijemce_email>\n"; // KOMU
$obalka['cc'] = "=?win-1250?Q?".imap_8bit($sekundarni_prijemce)."?="." <$sekundarni_prijemce_email>\n"; // KOPIE
$obalka['X-Priority'] = "2\n"; // PRIORITA
$obalka['Return-Path'] = "=?win-1250?Q?".imap_8bit("Return-Path")."?="." <email@email.cz>\n"; // ADRESA PRO NAVRAT V PRIPADE CHYBY
$obalka['Content-Type'] = "text/plain; charset=win-1250\n";// KODOVANI HLAVICEK
$obalka['Content-Transfer-Encoding'] = "base64\n";// KODOVANI HLAVICEK
$obalka['MIME-Version'] = "1.0\n";// KODOVANI HLAVICEK



$cast1['type'] = TYPEMULTIPART; // zprava ma nekolik casti
$cast1['subtype'] = "mixed"; // jednotlive casti jsou ruzneho typu

// VLOZENI PRILOHY //
$soubor = "./folder/$filename";
$fp = fopen($soubor, "r"); // otevreni pro cteni
$contents = fread($fp,filesize($soubor)); // binarni nacteni obsahu souboru
fclose($fp); // uzavreni souboru

$cast2['type'] = TYPEAPPLICATION;
$cast2['Content-Type'] = "text/plain; charset=win-1250\n";// KODOVANI
$cast2['encoding'] = ENCBINARY; // jde o binarni data
$cast2['subtype'] = "octet-stream";
$cast2['description'] = basename($soubor); // jmeno souboru bude jeho popisem
$cast2['contents.data'] = $contents; // prirazeni vlastniho obsahu


// DALSI CAST CASTI ZPRAVY JE JEJI VLASTNI TEXT //

$cast3['type'] = TYPETEXT;
$cast3['subtype'] = "plain\n";
$cast3['description'] = "obsah e-mailu"; // jmeno souboru bude jeho popisem
$cast3['contents.data'] =$obsah; // prirazeni vlastniho obsahu
$cast3['Content-Type'] = "text/plain; charset=win-1250\n";// KODOVANI HLAVICEK

// SLEPENI JEDNOTLIVYCH CASTI E-MAILU //

$telo[1] = $cast1;
$telo[2] = $cast2;
$telo[3] = $cast3;

$obsah_emailu = imap_mail_compose($obalka,$telo); // obsah celeho e-mailu vcetne prilohy

$header_end = StrPos($obsah_emailu, "\r\n\r\n"); // zjisteni, kde konci zapis hlavicek

$hlavicka = SubStr($obsah_emailu, 0, $header_end+2); // vyriznuti hlavicky
$telo = SubStr($obsah_emailu, $header_end, StrLen($obsah_emailu) - $header_end); // vyriznuti zbytku zpravy

/* subject */
$predmet = "=?win-1250?Q?".imap_8bit("Objednávka z www.server.cz")."?=";

/* ODESLANI */

if (mail("", $predmet, $telo, $hlavicka))
{
return true;
exit;
}
else
{
return false;
exit;
}

}