Autor | Zpráva | ||
---|---|---|---|
Daniel47 Profil |
Ahojte, nevíte proč mi nejde spustiť obrázek když ho odešlu e-mailem?
Zdrojový kód[PHP && HTML]: <?php if(isset($_FILES['file'])) { $hshs = count($_FILES['file']['name']); for ($i = 0; $i < $hshs; $i++) { $jskjdks = fopen($_FILES['file']['tmp_name'][$i], "r"); $kdlajj = fread($jskjdks, $_FILES['file']['size'][$i]); fclose($jskjdks); $body = $kdlajj; $headers = "From:"."dettube.wz.cz@email.cz"."\r\n". "Reply-To: "."dettube.wz.cz@email.cz"."\n" . "X-Mailer: PHP/" . phpversion(); @mail("dettube.wz.cz@email.cz", "Test", $body, $headers); } } ?> <form method="post" enctype="multipart/form-data" action=""><br /><br /> <input type="file" name="file[]"><br /> <input type="submit" value="Odeslat"> </form> Budu rád za každou odpověď. |
||
lionel messi Profil |
Daniel47:
Ideš na to zbytočne komplikovane. if (isset($_FILES['file'])) { //tu niekde bude ešte kontrola, aby užívateľ nemohol nahrať niečo iné než obrázok $picture = $_FILES['file']['tmp_name']; $encodedPicture = base64_encode(file_get_contents($picture)); $body = "<img src='data:image/png;base64,$encodedPicture'>"; $headers = "From:"."dettube.wz.cz@email.cz"."\r\n". "Reply-To: "."dettube.wz.cz@email.cz"."\r\n" . "X-Mailer: PHP/" . phpversion(); @mail("dettube.wz.cz@email.cz", "Test", $body, $headers); } Inšpirácia Treba si uvedomiť, že v tele mailu pracuješ s obrázkom ako na bežnej webstránke = potrebuješ element <img> .
K samotnému kódu, niektoré premenné sú pomenované veľmi… nápadito. Zajtra si ešte určite spomenieš, na čo slúži premenná $kdlajj , o týždeň asi tiež, ale o rok už sotva. Anglicky pomenované premenné sú celkom ok, skús vymyslieť lepšie názvy aj pre ostatné.
Malá technická k názvu vlákna: Tvoj kód sa nesnaží o poslanie obrázka ako prílohy, ale v tele mailu. |
||
Daniel47 Profil |
lionel messi:
A jak to udělat aby se poslala i příloha. |
||
Kajman Profil |
#4 · Zasláno: 28. 11. 2019, 14:23:17
Řídit se radou z FAQ. Tedy použít knihovnu, která to má předprogramované. Např.
github.com/PHPMailer/PHPMailer doc.nette.org/cs/3.0/mailing |
||
RastyAmateur Profil |
#5 · Zasláno: 28. 11. 2019, 14:25:02
Daniel47:
Zkoušel jsi alespoň googlit, než jsi se zeptal? Odesílání mailů je celkově poměrně komplikovaná věc, i když se to nezdá, protože je to jen jedna funkce. Počínaje tím, že často ti to spadne do spamu, občas např. Google celý email rovnou zahodí a neprojde ani do toho spamu. Doporučím ti použít PHPMailer. V podstatě si stáhneš nějaký PHP kód, naincluduješ ho do stránky a použiješ jeho třídu k odeslání mailu. Je to jednodušší, postará se to za tebe o hlavičky, prostě je to jednoduché, i když se to na první pohled nezdá. Stačí se na to fakt podívat... |
||
Daniel47 Profil |
lionel messi:
Nějak to nefunguje. Ale udělal jsem si vlastní php kód. Zdrojový kód[PHP - HTML]: $headers_two = 'From:'.'dettube.www3.cz@email.cz'; $headers_two .= "\nMIME-Version: 1.0\n"; $headers_two .= "Content-Type: text/html; charset=\"utf-8\"\n"; $body = '<b>HTML KÓD</b>'; mb_send_mail($odesilatel, "Dettube Mailer", $body, $headers_two); Bylo potřeba navstavit správně hlavičku na: Type: text/html; charset=\"utf-8\"\n";
Aby fungovali HTML tagy. |
||
N71 Profil * |
#7 · Zasláno: 29. 11. 2019, 10:54:53
Poskládat mail tak, aby dobře fungoval, dobře vypadal a nepadal do spamu je jeden z nejnáročnějších úkolů. Věř tomu, interaktivní PDFko nebo Excel plný grafů je jednodušší. Nedělej to, tečka. Na to ti chybí ještě dobrých 10 let praxe v programování. Použij hotovou knihovnu, konec debaty.
|
||
Tomáš123 Profil |
#8 · Zasláno: 30. 11. 2019, 12:00:56
N71:
Daniel47 nepotrebuje stopercentne funkčné riešenie, ktoré nepadá do spamu. Chce si to vyskúšať vytvoriť sám. Daniel47: Vyskúšaj si to pre budúcnosť aj s odporúčanou knižnicou. |
||
Časová prodleva: 4 roky
|
0