Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP kód-formulář na odeslání emailu s přílohou

Ahoj mám takový problém. Zde je kód php:

<?php
$nl="\r\n"; //řádky
if ($akce == "Odeslat") { /* Bylo stisknuto tlacitko Odeslat */

if (!is_uploaded_file($HTTP_POST_FILES ['soubor'] ['tmp_name'])) { /* nebyla vybrana priloha, posleme e-mail obycejne */
$simple_head="Content-Type: text/html; charset=\"utf-8\"; format=flowed $nl";
$simple_head.="From: <robot@xyz.cz>";
$simple_head.="MIME-Version: 1.0";
if (@mail ("$prijemce", 'Inezrát998521', "$dopis", "$simple_head")) {
echo "<h3>E-mail byl úspěšně odeslán!</h3>";
}
else {
echo "<h3>E-mail se nepodařilo odeslat!</h3>";
}
}
else { /* priloha byla vybrana */
/* nejprve sestrojime hlavicky */

$envelope["from"] = "$odesilatel";
$envelope["to"] = "$prijemce";
$envelope["cc"] = "kopie@xyz.net";

/* nyni sestrojime nekolik casti dopisu */
/* 1. cast - uvodni, tou rekneme, ze dopis ma vice casti s ruznymi typy dat */

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

/* 2. cast - do dopisu vlozime zadany text */
$part2["type"] = TYPETEXT;
$part2["subtype"] = "html";
$part2["charset"] = "utf-8";
$part2["description"] = "text";
$part2["contents.data"] = $dopis."\n\n\n\t";

/* 3. cast - do dopisu pripojime prilohu */
/* nejprve zadany soubor nacteme */
$f = fopen ($HTTP_POST_FILES ['soubor'] ['tmp_name'], "r");
// otevren pro cteni
$obsah = fread ($f,$HTTP_POST_FILES['soubor']['size']);
// nacteme obsah do promenne
fclose ($f);
// zjistíme typ souboru
$subtyp=StrChr($HTTP_POST_FILES ['soubor'] ['type'],"/");
$subtyp=SubStr($subtyp,1,StrLen($subtyp)-1);

$part3["type"] = TYPEIMAGE;
$part3["encoding"] = ENCBINARY;
$part3["subtype"] = $subtyp."; name=\"".$HTTP_POST_FILES ['soubor'] ['name']."\"";
$part3["disposition"] = "inline; filename = \"".$HTTP_POST_FILES ['soubor'] ['name']."\"";
$part3["description"] = "filename = \"".$HTTP_POST_FILES ['soubor'] ['name']."\"";
$part3["contents.data"] = $obsah;

/* Cely dopis ulozime do pole body */
$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

/* celou zpravu vytvorime a ulozime do promenne $zprava: */
$zprava = imap_mail_compose ($envelope, $body);

/* drive nez posleme zpravu funkci Mail musime rozdelit
zvlast hlavicku a zvlast telo: */

$pom = StrPos($zprava, "\r\n\r\n");
$hlavicka = SubStr($zprava, 0, $pom+2);
$telo = SubStr($zprava, $pom, StrLen($zprava) - $pom);

if (mail ("", 'Objednávka', $telo, $hlavicka)) {
echo "<h3>E-mail s přílohou byl úspěšně odeslán!</h3>";
}
else {
echo "<h3>E-mail s přílohou se nepodařilo odeslat!</h3>";
}
}
}
?>

Funkční je na form.html nebo send.php

Pokud dám odeslat třeba exe soubor, tak mi to pošle jenom kus a nejde spustit. Pokud pošlu obrázek, stáhne se ho jenom půlka a zbytek ne. Co udělat, aby to spolehlivě šlo? Díky za odpovědi.;-)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Na bazar bych si udělal buď kategorii ve fóru, jako to máme na bubákově http://forum.bubakov.net/vie…
Kráťa 07.12.2007 18:41
Kráťa
Vývoj zrychlil, bude to tam asi zítra. Zatím můžete "ochutnat" pilotní verzi (ještě doladím design)…
marekdrtic 07.12.2007 19:17
marekdrtic
Hezké. poslední
Kráťa 07.12.2007 22:05
Kráťa

Zpět do poradny Odpovědět na původní otázku Nahoru