Nette\Mail: odkazy při tvorbě TXT z HTML, Message-ID a jedna podivnost

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

Zdravím,

dovoluji si navrhnout do metody Nette\Mail\buildText přidat tento řádek:

<?php
	// <a href="https://nette.org/">Nette Homepage</a> -> Nette Homepage: https://nette.org/
	$text = preg_replace('#<a[^>]+href="([^"]*)">([^<]*)</a>#Uis', '$2: $1', $text);
?>

Ten převede odkazy z HTML verze do textového těla tak, aby byly použitelné (pokud není odkaz přímo v tagu, stávající kód ho prostě odstraní). Tohle je možné ještě vylepšit o nějaké kontroly – například nenahrazovat, pokud se src a obsah tagu rovnají, nevkládat relativní odkazy apod.

Další věc je, že bych rád měl možnost ovlivnit (nebo alespoň po odeslání zjistit / získat) Message ID generované zprávy. Dá se to použít například pro párování nedoručenek – Message Delivery Reports.

Nedopatřením jsem také přišel na zvláštní chování při použití SmtpSendmailMailer od Patrika Votočka, ale problém bude primárně spíš v Nette\Mail: dovolí odeslat e-mail i bez To: hlavičky. SmtpSendmailMailer potom hlásí nicneříkající chyby. RFC 822 requires that every message contain at least one To, Cc, or Bcc field. Možná by mělo smysl toto hlídat.

Petr Motejlek
Člen | 293
+
0
-

S obojím souhlasím… U toho prvního by se mi ale víc líbilo, kdyby ta adresa odkazu nebyla za dvojtečkou, ale v zárovce, protože v bloku textu by to vypadalo podivně, račte porovnat:

Můžete se podívat na stránky Nette frameworku: www.nette.org, který je super.

Můžete se podívat na stránky Nette frameworku (www.nette.org), který je super.