Získání info zpět z Mail/Message

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

Zdravím,
používám pro sestavení emailu Mail/Message, to funguje bez problému ale ještě před odesláním potřebuji sestavenou zprávu $message vzít a předat ji jinam kde si ji zase rozkouskuji a používám jí tam takto

public function DoSmthing(\Nette\Mail\Message $message)
{
		// .....
		$todo->setSubject($message->getSubject());
		$todo->setText($message->getHtmlBody());
		// ....
		$this->save($todo);
}

Bohužel API neobsahuje např. vůbec $message->getTo(získání doručovatele) nebo při získání příloh se mi vrací MIME type který potřebuji ve string podobě a nevim jak to zkonvertovat.

Nevíte jak na to?

Díky

CZechBoY
Člen | 3608
+
0
-

Proc proste nepredat hodnoty pred slozenim do Message? Nebo uz si predavas jen Message?

Danny
Člen | 146
+
0
-

Právě že už předávám jen message :/

CZechBoY
Člen | 3608
+
0
-

A nejde si predat parametry?
Nejde volat metodou co ma parametry tu druhou metodu?

Nejedna se spis o reakci na udalost?

Danny
Člen | 146
+
0
-

Parametry? teď nevim jak to myslíš.

CZechBoY
Člen | 3608
+
0
-

Parametry z nějakýho formuláře, kterej odešleš a z nějaký metody bublaj ty data aplikací.

Danny
Člen | 146
+
0
-

No mám to takhle, loguju veškerý emaily takže před odesláním toho emailu předám servise která se o to stará právě tu $message v kterém je složenej ten email a v té servise bych to potřeboval znova vytahat. Jedině bych to musel předávat veškerý informace z emailu po jednom do té servisi a to se mi zas tak moc nelíbí ale z té message to prostě nejsem schopnej zase dostat zpátky.

CZechBoY
Člen | 3608
+
0
-

Zkusil bych se podívat do obyčejného SendmailMaileru.

Danny
Člen | 146
+
0
-

Spíše bych potřeboval poradit s konvertem, takto se to snažim natahat do stringu přílohy z té $message

		if(count($message->getAttachments()) > 0)
		{
			foreach($message->getAttachments() as $attach)
			{
				$att .=$attach;
			}
		}

Ale háže mi to chybu

Recoverable Error

Object of class Nette\Mail\MimePart could not be converted to string
CZechBoY
Člen | 3608
+
0
-

Třeba smtp mailer ty přílohy bere asi přes generateMessage https://api.nette.org/…ler.php.html#98

Danny
Člen | 146
+
0
-

Tak to bude asi složitější než jsem čekal, generateMessage mi bohužel generuje vše a nejsem si jistej jak to z toho vyfiltrovat, jestli vůbec jde.

CZechBoY
Člen | 3608
+
0
-

Nebylo by rychlejší udělat si vlastní LoggableMessage třídu (rozšiřující původní Message) s tím, že by si vše ukládala v čistým formátu někam bokem? To bys potřeboval logovat tak bys sis uložil do nějaký svoji proměnný a pak si to zase vzal zpátky.

class LoggableMessage extends Message
{
	private $attachmentsPlain = [];

	public function addAttachment($file, $content = null, $contentType = null)
	{
		$this->attachmentsPlain[] = ['file' => $file, 'content' => $content, 'contentType' => $contentType];

		return parent::addAttachment($file, $content, $contentType);
	}
}
Danny
Člen | 146
+
0
-

Na to jsem právě narazil i zde
https://forum.nette.org/…skani-priloh
nebyl jsem si jistej jak přesně to mám použít, ale máš pravdu asi to bude to nejlepší řešení.