Jak správně vložit přílohu do mailu
- jAkErCZ
- Člen | 322
Zdravím,
Pokouším se přidat přílohu k mailu. Vím že mohu přílohu uložit a
poté předat cestu pomocí ->addAttachment
Jenže já se snažím udělat to že se příloha vytvoří jakoby virtuálně
a poté se do mailu přidá a odešle tak aby se nikam nemusela ukládat ale jak
na to?
Zde mám funkci která mi stáhne vygenerované pdf
public function renderPdf($complaint_id){
// Vytváření šablony pro PDF.
/** @var Template $template */
$template = $this->createTemplate();
$template->setFile(dirname(__FILE__) . self::PDF_TEMPLATE);
$complaint = $this->fillTemplateWithOrderDetail($template, $complaint_id);
// Render PDF.
$mPdf = new mPDF();
$mPdf->WriteHTML($template, 2);
// Return PDF.
$mPdf->Output('Reklamační protokol_R' . $complaint['complaint_number'] . '.pdf', 'D');
$this->terminate();
}
Ale teď přemýšlím jak udělat funkci která mi vrátí pdf přílohu a odešlu mailem.
public function renderPdftoMail($complaint_id){
// Vytváření šablony pro PDF.
/** @var Template $template */
$template = $this->createTemplate();
$template->setFile(dirname(__FILE__) . self::PDF_TEMPLATE);
$complaint = $this->fillTemplateWithOrderDetail($template, $complaint_id);
// Render PDF.
$mPdf = new mPDF();
$mPdf->WriteHTML($template, 2);
// Return PDF.
$mPdf->Output("", "S");
}
Přemýšlel sem nějak takto dle nějakých rad na internetu jenže to mi nic nevrací…
$pdf = $this->complaintPresenter->renderPdftoMail($id);
->addAttachment($pdf.'.pdf');
Vím že to dělám nejspíš blbě ale jak na to?
Díky
- jiri.pudil
- Nette Blogger | 1032
Předej obsah explicitně jako druhý argument – díky tomu se použije přímo, z žádného souboru už se nic nenačítá a první argument slouží už jen kvůli pojmenování přiloženého souboru v e-mailu.
$message->addAttachment('nazev_prilohy.pdf', $content)
- David Matějka
- Moderator | 6445
addAttachment ma druhy parametr content, kde muzes dat obsah toho souboru.
- Sitole
- Člen | 39
Metoda při přidání souboru do mailu má více parametru. Můžeš se podívat do dokumentace. https://api.nette.org/…age.php.html#…
První parameter bude prázdný string a jako druhy parametr bude obsah souboru (PDF). Jinak není úplně dobre renderovat PDF v presenteru. Raději udělej logiku v modelu.