Přihlášení

registrace ~ obnova hesla

MyEgo.cz › Poslání embedované fotky v HTML emailu .

Poslání embedované fotky v HTML emailu

Sunday, 02.05.10 - PHP - autor: Radek Hulán

Pokud posíláte email s obrázky klientům, máte v zásadě tři možnosti:

  1. odkázat se v HTML na váš externí server, čímž sice zmenšíte velikost emailu, ale email aplikace externí obrázky většinou blokují (takže se stránka zobrazí neúplná)
  2. dát obrázek jako přílohu emailu, jenže to také vyžaduje aktivitu klienta (kliknutí na obrázek)
  3. embedovat obrázky přímo do HTML

Ta poslední metoda je často ideální, protože typická emailová aplikace takovýto obrázek zobrazí bez jakékoliv požadované aktivity na straně příjemce.

Pro snadnou tvorbu takovéhoto emailu je možné použít třeba knihovnu phpMailer:

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsMail();
$mail->From="vas email";
$mail->FromName="vase jmeno";
$mail->AddAddress("prijemce email");
$mail->Subject = "Subjekt emailu";
$mail->IsHTML(true);
$mail->AddEmbeddedImage( '/dir/soubor.jpg', // lokalni soubor 'logoimg', // ID shodné s HTML 'fotografie.jpg', // zobrazený název souboru 'base64', 'image/jpeg'); // MIME typ
$mail->Body = "<p><img src=\"cid:logoimg\" /></p>";
$mail->AltBody="Fotografie";
$mail->Send();

Základem je uvedení anchoru v HTML pro daný obrázek, zde cid:logoimg, na který se poté odkážete v metodě AddEmbeddedImage(). Důležité je také správné uvedení MIME Type (pátý parametr) a volitelné jméno souboru (třetí parametr).

Sunday, 02.05.10 - PHP - autor: Radek Hulán - 4896x

Komentáře:

  1. [1] jrfish ahasisdn-7.dial-up.cz

    tohle je zbytečně komplikované (zjišťování mime typu atd).

    phpmailer totiž vytváří embedované fotky z příloh automaticky. jediné co je třeba dodržet aby to fungovalo je, aby src obrázku v html zprávě bylo shodné s cestou k příloze:

    $mail = new PHPMailer();
    $mail->MsgHTML( 'teď přijde obrázek - <img src="images/logo.png" alt="obrazek" />' );
    $mail->AddAttachment( 'images/logo.png' );

    pokud je cesta v AddAttachment !naprosto! stejná, jako cesta v src obrázku, tak phpmailer sám obrázek embedne, a já se nemusím vůbec starat o to, jestli je mime typ png, jpeg, gif atd, ani vytvářet unikátní cid

    odpověz na tento komentář karma: 0 Thursday, 29.07.10, 13:28:39
  2. [2] jrfish ahasisdn-7.dial-up.cz

    OPRAVA: tak dokonce cesta nemusí být přesně shodná, ale stačí, aby ta v src byla částí té z AddAttachment (jinými slovy, musí platit strpos( $cesta_k_attachmentu , $src_v_img ) !== false)

    odpověz na tento komentář karma: 0 Thursday, 29.07.10, 13:37:49

Přidejte nový komentář:

Pro přidání komentáře a hlasování se musíte nejdříve zaregistrovat nebo přihlásit.