email s prilohou

2 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. 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 ?
  2. 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; } }

← Zpět na všechna témata