Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 1. 10. 2016, 07:24:33
Ahoj, řeším problém s odesláním emailu s obrázky.
Když ho do těla zprávy vložím klasicky v elementu <img> , tak se mi sice zobrazí, ale až po odsouhlasení, že chci obrázky zobrazit:
Zpráva obsahuje externí obrázky, kliknutím na tento odkaz je zobrazíte. (seznam.cz) Když ho zakomponuju přímo jako background image do nějakýho divu nebo table cell tak se vůbec nic nezobrazí.. Narazil jsem na stránku, která nabízí "zaručené" řešení, ale to taky nefunguje: backgrounds.cm Když mi dorazí nějaký email z facebooku nebo odjinud, tak se tam vyskytuje logo a nejaká další grafika a bez nějakýho potvrzování se to rovnou zobrazí, ale tady mi to nějak nefunguje.. |
||
Keeehi Profil |
#2 · Zasláno: 1. 10. 2016, 10:06:39
quatzael:
A to je takový problém si zobrazit zdrojový kód emailu, v kterém to funguje a podívat se, jak to řeší? |
||
quatzael Profil |
#3 · Zasláno: 1. 10. 2016, 11:17:18
Keeehi:
Zdrojak emailu opravdu nevím jak zobrazit.. Ale můžu se podívat do vývojářských nástrojů, to je pravda.. Sorry, v noci mi to už nějak nemyslelo.. |
||
quatzael Profil |
Keeehi:
Tak jsem to vyzkoušel, ale nefunguje to. Zkoušel jsem jsem celej ten obsah co je zobrazený ve vývojářských nástrojích překopírovat a poslat sám, ale zase se tam zobrazí: Zpráva obsahuje externí obrázky, kliknutím na tento odkaz je zobrazíte. A po zobrazení se ty jejich obrázky ani nenačtou..Oni tam posílají obrázky nějak takto: <img alt="Facebook" data-src="http://domena.cz/externalfiles/FB-32x32-icon.png" src="https://img.email.seznam.cz/image-proxy?hashId=5c2ded72e4&addr=http%3A%2F%2Fdomena.cz%2Fexternalfiles%2FFB-32x32-icon.png&sznId=610ac9-ef61-4bf8-a242-58d52aa"> Vypadá to, že posílají obrázek nějak ve formátu base64 a seznam to automaticky z konvertuje do png. |
||
juriad Profil |
#5 · Zasláno: 1. 10. 2016, 14:55:45
quatzael:
Nedívej se do vývojářských nástrojů, ale do originálu e-mailu: www.savana.cz/napoveda/emaily-a-emailova-komunikace/emaily-a-emailova-komunikace/ziskani-zdrojoveho-kodu-e-mailove-zpravy |
||
quatzael Profil |
juriad:
Právěže mám seznam a ta možnost "Zobrazit hlavičku" zobrazí pouze hlavičku a ne celou zprávu.. juriad: Přeposlal jsem si to na gmail. Kromě toho, že ta zpráva na začítku obsahuje plno takovýchto nesmyslných znaků: =20 =20 =20 =20 =09=20 =20 =09=20 =20 =20 =20 tak je tam potom zase část kde je čisté HTML: A zase tam je <img> jednoduše: <img data-src=3D"http://www.domena.cz//static/img/mailing/logo-3.png" src=3D"http://www.domena.cz//static/img/mailing/logo-3.png" alt=3D"Domena" border=3D"0"> Tohle je teď zase ukázka z jinýho mailu, ale funguje stejně. Už jsem trošku blíž asi.. V hlavičce tam je všude Content-Type: multipart/alternative;
PHPMailer to asi umí nějak sám nastavovat pomocí: $mail->AddEmbeddedImage() , ale ještě jsem nezjistil jak..
|
||
Davex Profil |
quatzael:
„Právěže mám seznam a ta možnost "Zobrazit hlavičku" zobrazí pouze hlavičku a ne celou zprávu..“ Jak uložit celou zprávu. „PHPMailer to asi umí nějak sám nastavovat pomocí: $mail->AddEmbeddedImage() , ale ještě jsem nezjistil jak..“
Metoda msgHTML() vloží HTML zprávu a obrázky připojí automaticky, pokud se k nim dostane. Stejně tak metoda setHtmlBody() třídy Nette\Mail.
„hlavičce tam je všude Content-Type: multipart/alternative; “
Ne, dělá se to přes Content-Type: multipart/related; ... s propojením přes Content-ID . Pokud se v tom chceš vrtat do větší hloubky, tak je tomu věnováno RFC 2392.
|
||
quatzael Profil |
Davex:
No, nefunguje mi to. Zkouším to takhle a obrázek se vůbec nevloží: $email = new PHPMailer(); $email->CharSet = "UTF-8"; $email->From = 'info@domena.cz'; $email->FromName = 'Domena.cz'; $email->Subject = 'IMAGE TEST'; $email->AddEmbeddedImage('http://www.domena.cz/png/logo.png', "logo_png", "logo.png"); $email->MsgHTML = '<table><tr><td colspan="2"> <img src="cid:logo_png" alt="image_test" width="310" height="76" border="0" /> </td></tr></table>'; $email->Body = '<div>IMAGE TEST</div>'; $email->IsHTML(true); $email->AddAddress('notification@domena.cz'); return $email->Send(); quatzael: Když tam nedám to $email->Body tak mi to hází chybu, že body je empty.. Nevím jak to tam má vypadat ohledně toho ->MsgHTML a ->Body , co kam dát..
|
||
Davex Profil |
#9 · Zasláno: 1. 10. 2016, 23:22:41
quatzael:
$email->AddEmbeddedImage('http://www.domena.cz/png/logo.png', "logo_png", "logo.png"); $email->MsgHTML = '<table><tr><td colspan="2"><img src="cid:logo_png" alt="image_test" width="310" height="76" border="0" /></td></tr></table>'; msgHTML je metoda a nikoliv vlastnost, takže se použije jako funkce a ne jako proměnná.
|
||
quatzael Profil |
Davex:
upravil jsem to takhle, ale stejně to nefunguje: $email = new PHPMailer(); $email->CharSet = "UTF-8"; $email->From = 'info@domena.cz'; $email->FromName = 'Domena.cz'; $email->Subject = 'IMAGE TEST'; $email->AddEmbeddedImage('logo.png', "logo_png", "logo.png"); $email->MsgHTML ('<table><tr><td colspan="2"> <img src="cid:logo_png" alt="image_test" width="310" height="76" border="0" /> </td></tr></table>'); $email->IsHTML(true); $email->AddAddress('notification@domena.cz'); return $email->Send(); Tu celou cestu k obrázku jsem tam měl proto, aby to bylo přesně zadaný, pro jistotu. Teď jsem obrázek nahrál přímo do složky kde mám tenhle script, jestli to je tak správně.. |
||
quatzael Profil |
#11 · Zasláno: 2. 10. 2016, 17:14:43
Tak konečně vyřešeno!!
Nevím sice úplně jak. Asi jsem tam měl špatnou cestu k souboru. Nebere to relativní cestu, ale musím před to vždycky dát $_SERVER['DOCUMENT_ROOT'] ..
A to $email->MsgHTML() je tam asi k ničemu, funguje to i bez toho jenom s $email->Body ..
|
||
Časová prodleva: 6 let
|
0