Enviar emails en Yii2 es bastante sencillo, ya que usa Swiftmailer para tal prop贸sito.
Configuraci贸n 露
n el archivo de configuraci贸n s贸lo agregue (Si us贸 composer para crear el proyecto muy probablemente ya tiene las siguientes l铆neas):
'components' => [
...
'mail' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'localhost', // ej. smtp.mandrillapp.com o smtp.gmail.com
'username' => 'username',
'password' => 'password',
'port' => '587', // El puerto 25 es un puerto com煤n tambi茅n
'encryption' => 'tls', // Es usado tambi茅n a menudo, revise la configuraci贸n del servidor
],
],
...
],
Plugins 露
Si desea usar un Plugin de Swiftmailer (por cierto, muy 煤tiles), puede hacerlo desde el archivo de configuraci贸n tambi茅n. Algo como lo siguiente funcionar谩:
'transport' => [
'class' => 'Swift_SmtpTransport',
...
'plugins' => [
[
'class' => 'Swift_Plugins_ThrottlerPlugin',
'constructArgs' => [20],
],
],
],
Enviar emails desde la Aplicaci贸n 露
Use el siguiente c贸digo para enviar emails desde su aplicaci贸n:
Yii::$app->mail->compose()
->setFrom('alguien@dominio.com')
->setTo('email@suservidor.com')
->setSubject('Email enviado desde Yii2-Swiftmailer')
->send();
Plantillas de email avanzadas 露
En algunos casos, es necesario usar plantillas para generar los emails, en tal caso, s贸lo necesita hacer algo como lo siguiente:
Yii::$app->mail->compose('@app/mail-templates/email01', [/* Algunos par谩metros para la vista */])
->setFrom('desde@dominio.com')
->setTo('email@servidor.com')
->setSubject('Email avanzado desde Yii2-SwiftMailer')
->send();
O, si desea utilizar una plantilla para HTML y otra para emails de texto, puede hacer algo como:
Yii::$app->mail->compose(['html' => '@app/mail-templates/html-email-01', 'text' => '@app/mail-templates/text-email-01'], [/* Par谩metros para la vista */])
->setFrom('desde@dominio.com')
->setTo('email@servidor.com')
->setSubject('Email avanzado desde Yii2-SwiftMailer')
->send();
Note que la ruta de la vista puede ser relativa tambi茅n, tal y como lo har铆a en un controlador (e.g. ['html' => 'html-email-01']).
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.