Vkládání obrázku do emailu

gizer
Člen | 67
+
0
-

Ahoj,

jsem tady poprvé a snažím se vložit obrázek do těla emailu. Nejdříve pro kontrolu posílám obrázek přímo do prohlížeče. To funguje. Pak se stejnou cestou snažím pomocí setHtmlBody poslat do těla emailu
i nějaké HTML plus obrázek. V emailu se zobrazí pouze text HTML a místo obrázku jenom alt. Testoval jsem jak email na seznamu, tak gmail.

//Pozn. Vložení obrázku pro kontrolu načítání obrázku. Toto funguje a posílá obrázek do prohlížeče
$image = Image::fromFile(‚images/chalupa.jpg‘);
$image->resize(350, 330, Image::STRETCH);
$image->send();

/**Potvrzení objednávky pro zákazníka */
$mailClient = new Message;
$mailClient->setFrom(‚admin <admin@efrek.cz>‘)
->addTo($values[„email“])
->setSubject(‚Potvrzení objednávky aplikačního školení‘)
->setBody(„Dobrý den,\n vaše objednávka aplikačního školení byla přijata. Ozveme se Vám co možná nejdříve“);
$mailClient->setHtmlBody(‚<b>Sample HTML</b> chalupa‘);

//Pozn.Toto nefunguje a pošle email bez obrázku. Pouze zobrazí „Sample HTML“ a „chalupa“ jako alt.Cesta k obrázku je stejná v obou případech „images/chalupa.jpg“

$mailer = new SendmailMailer;
$mailer->send($mailClient);
$this->flashMessage(‚Zpráva byla odeslána‘);
$this->redirect(‚this‘);

Děkuji moc předem za jakoukoliv radu.

David Matějka
Moderator | 6445
+
+1
-

ahoj, seHtmlBody ma druhy parametr basePath, aby to dokazalo poznat, vuci jakemu adresari to ma relativne hledat obrazky. takze jej nastav na adresar, kde je pak slozka images

gizer
Člen | 67
+
0
-

Ano o tom jsem četl v API o druhém parametru basePath pro setHtmlBody. Nikde jsem však nenašel příklad, jak to správně nastavit? Složku images s obrázky mám v adresáři www.

David Matějka
Moderator | 6445
+
+1
-

ano, nastav ho na www slozku

gizer
Člen | 67
+
0
-

No nastavil jsem takto na složku images a funguje to

$mailClient->setHtmlBody(‚<b>Sample HTML</b> chalupa‘, „images“);

Díky moc