Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Programmazione Inviare una email in Joomla

Inviare una email in Joomla

E-mail Stampa PDF

Nella creazione di una extensione per Joomla potrebbe essere necessario inviare una email. Per fare questo ci sono tanti metodi, ma sicuramente quello più sicuro, in termini di compatibilità tra i sistemi di hosting, è quello fornito dalle API di Joomla tramite la classe Jmail.

Usare questa classe è molto semplice; per prima cosa occorre creare un oggetto di tipo JMail tramite un oggetto JFactory:

$mailer =& JFactory::getMailer();

Il passo successivo è quello di inserire il mittente, che andremo a recuperare dalla configurazione globale del sito e imposteremo tramite il metodo setSender:

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

successivamente inseriremo il destinatario con il metodo setRecipient:

$mailer->addRecipient('aaa@domain.com');

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

$recipients = array( 'aaa@domain.com', 'bbb@domain.com', 'ccc@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');

Volendo potreste inserire un allegato con la funzione addAttachment, ricordando che è il webserver che esegue la funzione quindi il percorso del file deve essere assoluto, quindi se ne aveste bisogno potreste servirvi delle costanti di Joomla:

JPATH_ADMINISTRATOR The path to the administrator folder.
JPATH_BASE The path to the installed Joomla! site.
JPATH_CACHE The path to the cache folder.
JPATH_COMPONENT The path to the current component being executed.
JPATH_COMPONENT_ADMINISTRATOR The path to the administration folder of the current component being executed.
JPATH_COMPONENT_SITE The path to the site folder of the current component being executed.
JPATH_CONFIGURATION The path to folder containing the configuration.php file.
JPATH_INSTALLATION The path to the installation folder.
JPATH_LIBRARIES The path to the libraries folder.
JPATH_PLUGINS The path to the plugins folder.
JPATH_ROOT The path to the installed Joomla! site.
JPATH_SITE The path to the installed Joomla! site.
JPATH_THEMES The path to the templates folder.
JPATH_XMLRPC The path to the XML-RPC Web service folder.(1.5 only)

Quindi per fare un esempio se volessi inviare un file presente in una sotto-directory del mio componente:

$mailer->addAttachment(JPATH_COMPONENT.DS.'files'.DS.'attachment.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';
}
 
Loading

Login




Chiudi