Ako poslať email s prílohou
publikované: od: Tibor PiňoNedávno som v jednom z mojich projektov riešil situáciu, kedy bolo potrebné k odosielanému emailu pripojiť aj prílohu. V článku si ukážeme jednoduchý návod, ako odoslať email s prílohou v CakePHP.
V CakePHP sa o posielanie emailov stará trieda EmailComponent a ako už z názvu môžeme vyčítať, vystupuje v úlohe komponenty. Táto trieda poskytuje plnohodnotné rozhranie pre profesionálnu prácu s emailami prostredníctvom CakePHP.
Email s prílohou
Ako som už spomínal, CakePHP myslí aj na tento spôsob odoslania emailu a v mnohých prípadoch môže byť veľmi užitočný. Napríklad si môžeme predstaviť, že chceme z nášho webu registrovať uchádzačov o prácu a chceme im poskytnúť možnosť k svojej žiadosti priložiť aj svoj životopis.
Na nasledujúcom kóde môžeme vidieť využitie email komponenty a jej odoslanie emailu s prílohou
class CareersController extends AppController {
var $name = 'Careers';
var $uses = array('Career');
var $components = array('Email');
function add() {
if(!empty($this->data)) {
$this->Email->to = 'test@mydomain.com';
$this->Email->replyTo = $this->data['Career']['email'];
$this->Email->from = $this->data['Career']['email'];
$this->Email->subject = 'Registration';
$this->Email->filePaths = array('files'.DS.'registration');
$this->Email->attachments = array($file);
$message = array($this->data['Career']['name'],$this->data['Career']['position']);
$this->Email->send($message));
}
}
}
Ako môžeme vidieť na kóde vyššie, okrem bežných nastavení potrebných pre správne odoslanie emailu s prílohou sme nastavili premennú $this->Email->filePaths, čo je cesta k prílohám relatívne k adresári /app/webroot/ (čiže v našom prípade sa budú prílohy nachádzať v adresári /app/webroot/files/registration) a taktiež sme nastavili premennú $this->Email->attachments do ktorej sme umiestnili pole s názvami súborov, ktoré sa nachádzajú v adresári /app/webroot/files/registration. Tieto nastavenia sú kompletné, ktoré musíme vykonať, aby sme následne mohli odosielať emaily aj s prílohami.
Rád uvítam vaše námety a pripomienky v diskusii k článku.