Jak wysłać e-maile z frameworka Yii używając smtp Gmail’a?

YiiDobrym rozwiązaniem może być użycie rozszerzenia mail, dzięki któremu możemy sobie skonfigurować brankę SMTP (np: z Gmail’a), wystarczy, że zrobisz co następuje:

  1. rozpakuj rozszerzenie w katalogu extensions
  2. dodaj w konfiguracji (/protected/config/main.php) np:

    'import'=>array(
    'ext.yii-mail.YiiMailMessage',
    ),
    'components'=>array(
    'mail' => array(
    'class' => 'ext.yii-mail.YiiMail',
    'transportType' => 'smtp',
    'transportOptions' => array(
    'host' => 'smtp.gmail.com',
    'username' => 'XXXX@gmail.com',
    'password' => 'XXXX',
    'port' => '587',
    'encryption'=>'tls',
    ),
    'viewPath' => 'application.views.mail',
    'logging' => true,
    'dryRun' => false
    ),
    ),

i możesz wysłać e-mail – wersja uproszona:

$message = new YiiMailMessage;
$message->setBody('Some content', 'text/plain', 'UTF-8');
$message->subject = 'Some title';
$message->addTo(Yii::app()->params['adminEmail']);
$message->from = Yii::app()->params['adminEmail'];
Yii::app()->mail->send($message);

lub bardziej rozbudowana w HTML z przekazaniem zmiennych do szablonu (domyślnie w application.views.mail):

$message = new YiiMailMessage();
$message->view = 'myTemplate';
$message->setSubject('Some subject');
$message->setBody(array(
'varialbeA' => $varA,
'variableB' => $varB
), 'text/html', 'UTF-8');
$message->setTo('user@example.com');
$message->setFrom(Yii::app()->params['adminEmail'], 'Administrator');

Ten wpis został opublikowany w kategorii Informatyka, PHP i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *