.: HosiriS :.

Informatica e non solo

Inviamo email con Symfony

Posted by hosiris su ottobre 23, 2010

Con la versione 1.3 in Symfony è stata integrata la classe Swift Mailer 4.1, semplificando enormemente le operazioni necessarie ad inviare mail.
La configurazione è basata sull’applicazione e può essere diversa per ogni ambiente. Queste configurazioni si trovano in apps/frontend/config/factories.yml.

prod:
  mailer:
    param:
      delivery_strategy: realtime
test:
  mailer:
    param:
      delivery_strategy: none
dev:
  mailer:
    param:
      delivery_strategy: single_address
      delivery_address: your_email
all:
  mailer:
    param:
      transport:
        class: Swift_SmtpTransport
        param:
          host: smtp.gmail.com
          port: 465
          encryption: ssl
          username: your_gmail_account
          password: your_gmail_password

Per istanziare un oggetto “mail”, nell’azione è sufficiente richiamare:

$this->getMailer()

La composizione e l’invio della mail sono possibili in maniera semplice tramite il metodo:

$this->getMailer()->composeAndSend('from@example.com', 'to@example.com', 'Subject', 'Body');

Se fosse necessario creare messaggi più complessi, la classe sfMailer fornisce accesso a tutte le funzionalità di SwiftMailer. Ad esempio:

#/myproject/apps/frontend/modules/mymodule/actions.class.php
public function executeSend($request)
{
...
    $message = $this->getMailer()->compose();
    $message->setSubject($params['subject']);
    $message->setTo($params['to']));
    $message->setFrom($params['from']);
    $html = $this->getPartial('mymodule/myTemplateHtml',$params);
    $message->setBody($html, 'text/html');
    $text = $this->getPartial('mymodule/myTemplateTxt',$params);
    $message->addPart($text, 'text/plain');
    $this->getMailer()->send($message);
...
}

Per maggiori approfondimento consiglio di leggere la documentazione.

Buon divertimento

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: