You are viewing revision #2 of this wiki article.
This is the latest version of this article.
You may want to see the changes made in this revision.
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.