Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS] Problem z tłem w emailu
Forum PHP.pl > Forum > Przedszkole
dassystem
Witam

Próbuję wysłać e-maila w formacie HTML przez phpmailera i pojawia się dziwny problem. Gdy użyje jako tła tabeli CSS (background-image: url('link')) to email w outlooku i na gmailu pojawia się bez tla a na onet-poczcie tło jest widoczne.
Gdy z kolei dam stare background='link' na gmailu tło jest widoczne, natomiast w outlooku nie...
W phpmailerze mam ustawione IsHTML(true).

Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title>Email</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table style="background-image: url(http://*************.jpg); background-repeat:no-repeat; height:335px">
<tr><td>
blebleble
</td></tr>
</table>
</body></html>


Proszę o pomoc.
baranek77
Niektóre skrzynki blokują obrazki w mailach, ale przeważnie powinien się pojawić link w stylu "pokaż obrazki z tego maila".
vokiel
Możesz wstawiać obrazek w treść maila, a nie tylko do niego linkować. Np:
  1. <?php
  2. $mail->AddEmbeddedImage("../images/tlo.jpg", "tlo.jpg", "tlo.jpg");
  3. $tresc_maila .= '<table style="background: url('cid:tlo.jpg') no-repeat top center; height: 335px;">';
  4. ?>
dassystem
Cytat(vokiel @ 24.04.2009, 07:26:59 ) *
Możesz wstawiać obrazek w treść maila, a nie tylko do niego linkować. Np:
  1. <?php
  2. $mail->AddEmbeddedImage("../images/tlo.jpg", "tlo.jpg", "tlo.jpg");
  3. $tresc_maila .= '<table style="background: url('cid:tlo.jpg') no-repeat top center; height: 335px;">';
  4. ?>

To rozwiązanie działa poprawnie na Poczta.Onet i w OutlookExpress, natomiast Outlook2007 i Gmail traktuje obrazki jako standardowe załączniki i nawet nie wyświetla informacji że zostały ukryte.
Istnieje jakieś rozwiązanie które działa na każdym kliencie ?
vokiel
Takiego rozwiązania nie ma, to czy obrazki będą wyświetlane zależy w większości przypadków od klienta poczty.
Dołączeie obrazka w postaci linku zmniejsza rozmiar poczty, ale zmusza do jego pobrania przy otwieraniu, co wiele klientów pocztowych blokuje. Przykładowo, sam w domu używam TheBat! i mam zablokowane pobieranie obrazków, przez to wszystkie spamowe maile sie nie wyświetlają poprawnie:-D

Obrazki dołączane jako embeded teoretycznie powinny pojawiać się automatycznie w treści. Z tego co testowałem w TheBat!, OutlookExpress, Thunderbird działało bez zarzutu, wszystkich nie sprawdzałem. Jak widać
Cytat
Outlook2007 i Gmail traktuje obrazki jako standardowe załączniki i nawet nie wyświetla informacji że zostały ukryte.
nie wszędzie to działa.
batman
Ustawienie obrazka jako background-image w css nie zadziała. A to, że gdzieś działa to tylko i wyłącznie przypadek/błąd. Jeśli chcesz użyć obrazka jaktło spróbuj wrzucić obrazek jako atrybut background do znacznika html. Ścieżkę podaj bezwzględną, czyli http://www.jakis.adres.pl/obrazek.jpg. Jedyną wadą tego rozwiązania jest to, że odbiorca maila będzie musiał zaakceptować pobranie obrazków ze zdalnego serwera. Tego nie da się ominąć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.