Introduzione Come iniziare Zend_Mail fornisce delle funzionalità generiche per scrivere ed inviare messaggi e-mail sia in formato testuale sia compatibili con lo standard MIME multipart. Zend_Mail può inviare e-mail utilizzando il transpoter predefinito Zend_Mail_Transport_Sendmail oppure via Zend_Mail_Transport_Smtp. Semplice e-mail con Zend_Mail Una semplice e-mail è composta da alcuni destinatario, un oggetto, un contenuto ed un mittente. Ecco come inviare l'e-mail via Zend_Mail_Transport_Sendmail: setBodyText('Questo è il testo.'); $mail->setFrom('qualcuno@example.com', 'Un mittente'); $mail->addTo('qualcunaltro@example.com', 'Un destinatario'); $mail->setSubject('Oggetto testuale'); $mail->send();]]> Specifiche minime Per poter inviare un'e-mail con Zend_Mail è necessario specificare almeno un destinatario, un mittente (con setFrom()) ed un messaggio (testo e/o HTML). Per la maggior parte degli attributi sono disponibili specifici metodi "get" per leggere le informazioni salvate nell'oggetto e-mail. Per ulteriori dettagli fare riferimento alle API della classe. Un metodo speciale è getRecipients(). Restituisce un array contenente tutti gli indirizzi e-mail dei destinatari aggiunti prima della chiamata del metodo. Per ragioni di sicurezza, Zend_Mail filtra tutte le intestazioni per prevenire un attacco di tipo header injection utilizzando il carattere di nuova riga (\n). La maggior parte dei metodi di un oggetto Zend_Mail consente l'utilizzo di un'interfaccia fluida. Un'interfaccia fluida significa che ogni metodo restituisce un riferimento al metodo dal quale è stato chiamato consentendo di chiamare immediatamente un nuovo metodo in successione. setBodyText('Questo è il testo.') ->setFrom('qualcuno@example.com', 'Un mittente') ->addTo('qualcunaltro@example.com', 'Un destinaratio') ->setSubject('Oggetto testuale') ->send();]]> Configurazione del transport sendmail predefinito Zend_Mail_Transport_Sendmail è il transport predefinito per un'istanza di Zend_Mail. Consiste essenzialmente in un wrapper alla funzione PHP mail(). Se si desidera passare parametri aggiuntivi alla funzione mail() è sufficiente creare una nuova istanza del transport e fornire i parametri al costruttore. La nuova istanza può sia agire come transport predefinito per Zend_Mail sia essere passata al metodo send() di Zend_Mail. Passaggio di parametri aggiuntivi al transport Zend_Mail_Transport_Sendmail Questo esempio mostra come cambiare l'intestazione Return-Path della funzione mail(). setBodyText('Questo è il testo.'); $mail->setFrom('qualcuno@example.com', 'Un mittente'); $mail->addTo('qualcunaltro@example.com', 'Un destinatario'); $mail->setSubject('Oggetto testuale'); $mail->send();]]> Restrizioni in Safe mode In caso PHP sia configurato con safe mode attivo, i parametri opzionali aggiuntivi possono impedire il corretto funzionamento di mail() e l'invio dell'e-mail.