2012-10-24 14 views
17

Próbuję zrobić podpis w HTML za pomocą obrazów, które są zakodowane w bazowych 64 adresów URL danych. Oto przykład:Jak skutecznie osadzać obrazy w formacie HTML do wyświetlania w klientach poczty internetowej?

<img src="data:image/png;base64,iVBORw0KGgoAAAAN...kJggg=="> 

To działa ładny z poczty oprogramowania jako Mail on Mac lub Thunderbird, ale to nie działa z webmail, takich jak Gmail, Outlook roundcube, Hotmail ...

Czy macie jakiś pomysł jak to działa? Naprawdę chcę umieścić te obrazy bezpośrednio w kodzie źródłowym, jest to bardziej praktyczne.

+0

Jaki kod źródłowy? –

+0

Ponieważ użyłem podstawowych 64 obrazów, oto kod (trochę długi): http://pastebin.com/atqBMzi9 Usunąłem również wszystkie informacje, takie jak linki, nazwy ect, ponieważ jest to prywatne. EDYCJA: używam przezroczystego obrazu i modyfikować obraz tła w stylu css. –

+0

To może być bardziej odpowiednie dla http://webapps.stackexchange.com/ To nie jest pytanie programistyczne, po prostu chcesz użyć surowego HTML w podpisie webmail. W przypadku Gmaila nie jest to konieczne, ponieważ do podpisów służy edytor WYSIWYG. –

Odpowiedz

21

prosta odpowiedź?

Nie możesz. Gmail, Outlook itp. Zignoruje obrazy base64.

Look at this site to learn more about this

enter image description here

Więc na podstawie naszych wyników, to zdecydowanie nie jest wart użyciu wbudowanych obrazów w wiadomości e-mail. Wszystko, co będziesz robić, zmusza ludzi do pobierania zakodowanych obrazów, których nie będą mogli oglądać.

+0

Oh crap :(Spróbuję zrobić to w inny sposób. Po prostu wstawię adres źródłowy, a następnie załaduję moje obrazy na mój serwer. –

0

używam wbudowanego SVG, oto dlaczego:

  • To wygląda ładnie (grafiki wektorowej działa dobrze na logo).
  • Brak załącznika (nawet obrazy wysłane jako tak zwane ukryte załączniki wiadomości e-mail są widoczne jako takie w wielu klientach poczty e-mail).
  • Brak dodatkowego żądania http (działa w trybie offline, po pobraniu).
  • Nie "Czy chcesz załadować obrazy .." pytanie.
  • Dla mnie jest ok, jeśli nie wyświetla się w Gmailu i Outlook. To rodzaj wdzięcznej degradacji.

Ale jeśli naprawdę chcesz wyświetlać obrazy w Gmailu i Outlook'u, musisz załadować je przez HTTP.

Facet z CSS sztuczki ma ładny poradnik SVG maila: https://css-tricks.com/a-guide-on-svg-support-in-email/

Ostateczne rozwiązanie jest następujące:

/* Resize an element that has a width and height of zero to full size */ 
 
.showy { 
 
    height: 100% !important; 
 
    width: 100% !important; 
 
}
<!-- Image: SVG --> 
 
<img class="showy" width="0" height="0" src="my-image.svg"> 
 
<!-- Image: JPG --> 
 
<img class="no-showy" src="my-image.jpg">

Ale ja osobiście nie lubię to, ponieważ nie chcę, aby klient pytał użytkownika, czy chce załadować dodatkowe zasoby.

+0

Nie polecam tej techniki, Gmail obsługuje już style w głowie ... –