email přes Mail\Message neodesílá styl

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
CJHornster
Člen | 56
+
0
-

Čau mám problém s odesíláním emailů

posílám je přes smtp server (moje emailová adresa u hostingu) a template předávám jako šablonu

$confirm_email_template = new Nette\Templating\FileTemplate(__DIR__ . '/../templates/Homepage/confirm-email.latte');
			$confirm_email_template->registerFilter(new Nette\Latte\Engine);
			$confirm_email_template->unique_site_index = __DIR__;

			$mail = new Message;
			$mail->setFrom('Vyzadejme <registrace@vyzadejme.cz>')
			    ->addTo($values->email)
			    ->setSubject('Potvrzení registrace k přístupu na Vyzadejme.cz')
			    ->setHtmlBody($confirm_email_template);

jenomže mám problém, s tím, že se mě nepřeposílá styl – email se mě například na sernamu doručí,ale je uplně bez stylů a na googlu je ještě problém v tom, že mě to hodí do spamů

Michal Vyšinský
Člen | 608
+
+1
-

Ahoj, v emailech musíš použít inline styly.

CJHornster
Člen | 56
+
0
-

hmm tušil sem to a bál sem se toho :D a skrytě sem doufal, že je nějaká možnost jak to obejít

Michal Vyšinský
Člen | 608
+
0
-

No existují nějaké inlinery, ale nevím, zda něco, co by to dokázalo udělat automaticky např. z latte před odesláním.

CJHornster
Člen | 56
+
0
-

jj nějakym pluginem sem si to převed do inlinu, zatím se jedná jen o confirmation email, ale teď právě řeším jak to udělat když si budu chtít emaily sám navrhovat – třeba v CKEditoru

EDIT: tak jo, tak gmail to hodí do spamu pokud to u sebe nemá styl

Editoval CJHornster (12. 8. 2014 15:40)

leninzprahy
Člen | 150
+
0
-

CKEditor ale vytváří také inline styly ne? A na nějaké obecné lze použít náhradu, my používáme něco jako:

$dom = new \DOMDocument('1.0', 'utf-8');
$dom->loadHTML($html);

$xPath = new \DOMXPath($dom);

foreach ($xPath->query("//h1") as $node) {
	$node->setAttribute("style",
			  "font-size: 200%;"
			. "color: #FFF;");
}

...

Ještě to pak chce nalámat na řádky, jinak by to za nás udělal poštovní server (http://tools.ietf.org/html/rfc5321#…), a bylo by mu jedno, že je to uprostřed definice stylu

$html = wordwrap($dom->saveHTML(), 500, "\n", false);
David Kudera
Člen | 455
+
0
-

Kdyby to někoho zajímalo víc, tak doporučuju kouknout na tyhle 3 přednášky: Frontendisti: Kódování html e-mailů a newsletterů

CJHornster
Člen | 56
+
0
-

jj CKEditor dělá inliny, ale potom potřebuju ještě obecně nadefinovat H1 H2 atd … ale díky za za kód a odkazy, hodně mě to pomůže, mrknu na to ;)