lunedì 23 settembre 2013

Joomla email

Nelle nostre estensioni Joomla è veramente molto semplice inviare email. Utilizzando le api di Joomla, con poche righe di codice, possiamo mandare email in tutta sicurezza, delegando a Joomla tutto il lavoro.

Inviare una email con le api di Joomla

Per prima cosa occorre creare un oggetto di tipo JMail:

$mailer = JFactory::getMailer();

Il passo successivo è quello di inserire il mittente, che andremo a recuperare dalla configurazione globale di Joomla:

$config = JFactory::getConfig();
$sender = array(
            $config->getValue('config.mailfrom'),
            $config->getValue('config.fromname')
          );

$mailer->setSender($sender);

successivamente inseriremo il destinatario della email:

$mailer->addRecipient('indirizzo@domain.it');

Se avete bisogno di inserire molti destinatari, basterà inserirli in un array:

$recipients = array(
                'primo@domain.com',
                'secondo@domain.com',
                
'terzo@domain.com'         
);

$mailer->addRecipient($recipients);

Ora con le funzioni setSubject e setBody imposteremo l'oggetto della email e il testo in essa contenuto: 

$mailer->setSubject('Subject of the email');
$mailer->setBody('Sample text'); 

Se volte inviare una mail con testo in HTML basta scrivere:

$mailer->isHTML(true); 

Mentre per la codifica:

$mailer->Encoding = 'base64';

Volendo potete inserire un allegato con la funzione addAttachment. Per il percorso del file da allegare vi consiglio di utilizzare le costanti di Joomla:

$mailer->addAttachment(           JPATH_COMPONENT.DS.'files'.DS.'file.zip'        
); 

Infine non ci rimane che inviare l'email:

$send = $mailer->Send(); 
if ($send !== true) { 
    echo 'Error sending email: '.$send->message; 

else { 
     echo 'Mail sent'; 
}