![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 6.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam po raz pierwszy na tym forum:) Nie miałem nigdy za wiele do czynienia z php, ale chyba się zaczyna...
Mianowicie dostałem zlecenie na wykonanie szablonu e-mail zawierającego w treści obrazki. Potrafię wysłać e-mail jako stronę html, a wiec obrazki i wszystko wyświetla się tak jakbym chciał - grafika wczytywana jest ze zewnętrznego serwera, a wiec e-maile nie zawierają załączników. Problem polega na tym, że gdy ktoś wejdzie w e-mail, do akcji wkraczają teksty typu "Obrazki dla tej strony zostały zablokowane. Kliknij tutaj aby je odblokować". Dopiero po kliknięciu na ten napis, obrazki pojawiają się w treści. Jest tak w róznych klientach pocztowych - z uwzględnieniem Outlooka... Zauważyłem, że niektóre firmy reklamujące swoje usługi, przysyłają do mnie e-maile, gdzie nie trzeba klikać na żaden napis, bo grafika wyświetla się od razu po włączeniu e-maila. Jak można coś takiego zrobić? Na pewno, tak jak na każdym innym forum, zaraz ktoś mi napisze "poczytaj clasy PhpMailer", "do tego służy PhpMailer - jest najlepszy" itp. Niestety nic mi to nie daje. Mam ten PhpMailer na kompie i nie mam zielonego pojęcia, co z tym zrobić. Angielski zam tak sobie, a php, tak jak wspominałem - wcale. Spostrzegłem, że w e-mailach które od razu wyświetlają grafikę (czyli to do czego dążę) zamiast standardowego <img src="obrazek.jpg"> jest coś takiego: <img src="cid:2820cc9aaf9e4c4673d92622bd04fbc7"> Pojęcia nie mam skąd te cid'y. Przeglądając dokumentacje, znalazłem taką komendę: function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", $type = "application/octet-stream") { if(!@is_file($path)) { $this->SetError($this->Lang("file_access") . $path); return false; } $filename = basename($path); if($name == "") $name = $filename; // Append to $attachment array $cur = count($this->attachment); $this->attachment[$cur][0] = $path; $this->attachment[$cur][1] = $filename; $this->attachment[$cur][2] = $name; $this->attachment[$cur][3] = $encoding; $this->attachment[$cur][4] = $type; $this->attachment[$cur][5] = false; // isStringAttachment $this->attachment[$cur][6] = "inline"; $this->attachment[$cur][7] = $cid; return true; } [/size] Domyślam się że to jest rozwiazanie mojego problemu. Ale co z tym zrobić? Gdzie wkleić? Nie piszcie prosze nic w stylu "dodaj to do klasy i po sprawie" bo nic nie zrozumiem. Bardzo bym prosił, aby ktoś napisał KROK PO KROKU jak wykonać takiego e-maila. NIGDZIEw necie nie ma tego wyjaśnionego - szukałem już 4 dni, kombinowałem i nic. Piszcie, jak do dziecka:) Z góry bardzo dziękuję! Ten post edytował Kamilos 6.10.2009, 14:16:40 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj może użyć gotowej klasy, która zajmuje się całą "filozofią" mailowania za Ciebie. Polecam phpMailer. Te cid'y to tzw grafika embedded (jeśli dobrze tłumaczę to zagnieżdżona). Chodzi w skrócie o to aby grafika nie była pobierana z zewnętrznego serwera tylko wysłana razem z mailem.
Tutaj masz mały tutorial: http://phpmailer.worxware.com/index.php?pg=tutorial polecam sekcję "Inline Attachments". Ręcznie nigdy nie wysyłałem maili bo phpMailer zajmuje się wszystkim szczegółami, o których nie wiem i nie chcę wiedzieć. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 06:34 |