Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wiadomość e-mail, PILNE!!!
Kamilos
post 6.10.2009, 14:14:44
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
Go to the top of the page
+Quote Post
athabus
post 6.10.2009, 14:47:09
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ć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 06:34