e-mail s přílohou
13 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Chtěla jsem se zeptat,mám v php MIME mail s přílohou,kde si ve formuláři vypním adresu odesílatele a příjemce,nahrát soubor a poslat.Mám ho zde na těchto stránkách,chybu v php mi to neukazuje ale soubor nejde bohužel odeslat.Jaké jsou možnosti problému?
-
Problém bude v tom, že funkce Mail() je na WZ dost radikálně omezena. Nevím, jak je to přesně ale tuším že: max. 100kB, max 10emailů /hod a max 10 příjemců /email.
-
viz Tom (manual.wz.cz) viz cz.php.net/mail 'chybu v php mi to neukazuje' Jakou to hlasi chybu? Mozna ten dotaz ted zni hloupe, ale... Pokud mas v php spravne zapnute chybove hlaseni a zobrazujes chyby i funkce mail, pak to musi zahlasit chybu. Jinymi slovy, asi nemas chyby povolene. zkus pridat odkaz na soubor_php.txt Povoleni PHP chyb zatim provadim zapisem techto 3 radku na zacatek scriptu: @ini_set('error_reporting',E_ALL); @ini_set('display_errors' ,'on'); error_reporting(E_ALL); Funkce mail zobrazuje chyby jako if (mail(...)) {echo 'byl odeslan'} else {echo 'nebyl odeslan';} dalsi mozny pripad je zobrazit primo vysledek $x = mail(...); echo $x; @mail() - toto je zpusob, jak rici funkci, aby chybu nezobrazila Napada mne dalsich 1000 zpusobu, jak odeslat mail a hledat chybu, asi pripravim 1000 radkovou stranku na kterou budu pokazde odkazovat a reknu: Ano, vas problem je jiste zminen na teto strance, hledejte. Ja vas kod nemam :)
-
peta: "dalsi mozny pripad je zobrazit primo vysledek $x = mail(...); echo $x;" Když už odkazuješ na php.net/mail - četl jsi návratové hodnoty funkce? Asi ne, viď... Jinak gratuluju, další 20ti řádkový příspěvek s téměř nulovou vypovídající hodnotou :)
-
Asi jsem to špatně napsala,ale každej neni tak chytrej jako Ty Tome.Chybové hlášky mám povolené,chyba se mi nezobrazuje,ale vrací se mi hodnota false-E-mail se nepodařilo odeslat.Script: <head> <title>Untitled Document</title> <meta name="GENERATOR" content="Easy Editor 2005"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> </head> <body> <? if ($akce == "Odeslat") { if ($soubor_name == "") { if (mail ("$prijemce", 'Zpráva z webu', "$dopis", "From: $odesilatel")) { print "<h3>E-mail byl úspěšně odeslán!</h3>"; } else { print "<h3>E-mail se nepodařilo odeslat!</h3>"; } } else { $envelope["from"] = "$odesilatel"; $envelope["to"] = "$prijemce"; $part1["type"] = TYPEMULTIPART; $part1["subtype"] = "mixed"; Copy($soubor, $soubor_name); $f = fopen ($soubor_name, "r"); $obsah = fread ($f, filesize($soubor_name)); fclose ($f); $part2["type"] = TYPEAPPLICATION; $part2["encoding"] = ENCBINARY; $part2["subtype"] = "octet-stream"; $part2["description"] = basename($soubor_name); $part2["contents.data"] = "$obsah"; $part3["type"] = TYPETEXT; $part3["subtype"] = "plain"; $part3["description"] = "text"; $part3["contents.data"] = $dopis; $body[1] = $part1; $body[2] = $part2; $body[3] = $part3; $zprava = imap_mail_compose ($envelope, $body); $pom = StrPos($zprava, "\r\n\r\n"); $hlavicka = SubStr($zprava, 0, $pom+2); $telo = SubStr($zprava, $pom, StrLen($zprava) - $pom); if (mail ("$prijemce", 'Zpráva z webu', $telo, $hlavicka)) { print "<h3>E-mail byl úspěšně odeslán!</h3>"; } else { print "<h3>E-mail se nepodařilo odeslat!</h3>"; } } } ?> <hr size=1 noshade> <form action="send.php" method="post" enctype="multipart/form-data"> Odesílatel: <input type="text" name="odesilatel" value="" size=50 maxlenght=50><BR> Příjemce: <input type="text" name="prijemce" value="" size=50 maxlenght=50><BR> <br> Text:<br> <textarea name="dopis" cols="50" rows="10"></textarea><br> Soubor: <input type="file" name="soubor"> <br> <input type="submit" name="akce" value="Odeslat"><br> </form> </body> Předem děkuji za odpovědi
-
Tak nevím - ale zkusil jsem poslat majlík a výsledek je: Obsah Děkujeme za odeslání emailu.
-
A z čeho si to zkoušel poslat?Já ať dělám,co dělám,tak se mi to neodešle.A přišla Ti i příloha?
-
Pardon - nedorozumění :-) - použil jsem formulář v Kontakt. Toho druhého formuláře jsem si předtím nevšiml - a nejde odeslat. Patrně je nějaká chyba v send.php - protože ten druhý formulář e-mail odesílá.
-
Používáš pravděpodobně stejný send.php pro odeslání mailu - tak zkus do toho formuláře Kontakt dodat tag Soubor: <input type="file" name="soubor"> a zkontroluj názvy proměnných. Jsem Lama - formulářům moc nehovím. :-)
-
agnes.kunst (anezkakunstarova.webz.cz) pokud napise mail se nepodarilo odeslat, je problem s mailovou funkci, ted kde. Lama ma jinak nastavene php, jemu to muze chodit. proto je dulezity odkaz na soubor soubor.php (vysledek) soubor_php.txt (zdroj) nevsiml jsem si, kde naplnujes promenne $prijemce a pod? zkus si vypsat: echo "<br>prijemce=".$prijemce; echo "<br>predmet=".$predmet; echo "<br>telo=".$telo; echo "<br>hlavicka=".$hlavicka; if (mail ("$prijemce", 'Zpráva z webu', $telo, $hlavicka)) { Pokud jsou tyto udaje spravne, pak se mail jako takovy ma odeslat. Co se tyce priloh, to jsem nezkousel, ale vim, ze je treba v hlavicce zmenit typ na neco jineho nez je prednastaveny, viz cz.php.net/mail , tam bude popsan mail i s prilohou. Tusim, ze jeden z prikladu to dokonce resi jeste nejakou spesl knihovnou a ne mail funkci.
-
Už výš jsem psal, že jsem to posílal z jiného formuláře (má tam 2). Z formuláře na stránce Kontakt mail poslat jde. Nevím jak bych měl mít "jinak nastavené php", abych já mohl e-mail poslat a někdo jiný ne... :-)
-
Tak,máte pravdu oba,opravdu jsem to měla špatně napojené,vůbec jsem si toho nevšimla.A ještě jsem přišla na to,že tu přílohu mám jaksi nedomyšlenou,ale ten hlavní důvod je vyřešen,jsem asi taky lama:-).No přes apache mi to bohužel nejde poslat vůbec,i když jsem do php.ini nastavila smtp poskytovatele mého připojení,tak to taky nevim,kde by mohla bejt chyba,ale to už na okraj...díky moc
-
na localhostu musis mit povolenou funkci mail a musi tam bezet mailovy klient (server). To je neco jako apache, jen se to jmenuje jinak a spousti se to zvlast. Tvuj poskytovatel to ma.