Nette\Mail\Message – ziskani priloh

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

Ahoj,

Prosim o radu ohledne vypreparovani seznamu priloh pripojenych k Nette\Mail\Message. Vytvoril jsem si logovatelneho mailera, ktery pri odeslani automaticky loguje info o odeslanem mailu a zajima me, jak z pripravene zpravy dostat ony prilohy, resp. jejich nazvy.

Pri prochazeni api a implementace Nette\Mail\Message mi neni uplne jasne, jestli to vubec lze.

Resil jste uz nekdo neco podobneho?

Dik za odpovedi,
JR

Editoval JuniorJR (7. 9. 2013 20:17)

Felix
Nette Core | 1270
+
0
-

Dle API to vypada, ze to nejde.

enumag
Člen | 2118
+
0
-

Koukal jsem na kód a myslím že by to mohlo jít doimplementovat. Zkus poslat pull request.

JuniorJR
Člen | 181
+
0
-

enumag napsal(a):

Koukal jsem na kód a myslím že by to mohlo jít doimplementovat. Zkus poslat pull request.

Blbe je, za ja bych to potreboval uz ted :) prozatim prilohy tedy logovat nebudu a popremyslim, jak by se to dalo doimplementovat. Otazka je, co presne vracet pri pouziti $message->getAttachments();?

Jestli staci vracet defakto parametry z $message->addAttachment(...);, ale v jake podobe? Vnitrne se z toho vytvori MIME part a nevim, jestli z neho samotneho se lze dopracovat k onem informacim, ktere bych rad (predevsim nazev souboru).

Editoval JuniorJR (9. 9. 2013 22:14)

enumag
Člen | 2118
+
0
-

Ono možná ani nemá smysl to dávat přímo do Nette. A jinak ti nejspíš bude úplně stačit tohle (píšu z hlavy, netestováno):

class Message extends \Nette\Mail\Message
{
	private $files = array();
	public function addAttachment($file, $content = NULL, $contentType = NULL)
	{
		$this->files[] = $file;
		return parent::addAttachment($file, $content, $contentType);
	}
	public function getFiles()
	{
		return $this->files;
	}
}

Editoval enumag (9. 9. 2013 22:24)

JuniorJR
Člen | 181
+
0
-

enumag napsal(a):

Ono možná ani nemá smysl to dávat přímo do Nette. A jinak ti nejspíš bude úplně stačit tohle (píšu z hlavy, netestováno):
`php
class Message extends \Nette\Mail\Message
{
private $files = array();
public function addAttachment($file, $content = NULL, $contentType = NULL)
{
$this->files[] = $file;
parent::addAttachment($file, $content, $contentType);
}
public function getFiles()
{
return $this->files;
 }
}

Ano, presne tohle me uz take napadlo. Jen se mi nelibi to, ze v maileru pak budu muset mit neco na zpusob (neprijde mi to 2× ciste, ale stejne to tak asi nakonec udelam):

public function send(Nette\Mail\Message $message)
{
    if ($message instanceof MyNiceMessageClass) {
        // get attachments ...
    }
}
> ```

Editoval JuniorJR (9. 9. 2013 22:27)

enumag
Člen | 2118
+
0
-

Máš pravdu že to není úplně nejlepší ale jako jednoduché řešení problému je to imho zcela v pořádku a ani bych se moc neštítil nechat to v aplikaci dlouhodobě.