k2 / mailer
此包已被弃用且不再维护。未建议替代包。
K2框架的邮件发送库
dev-master
2013-05-23 19:21 UTC
This package is auto-updated.
Last update: 2019-02-21 14:20:45 UTC
README
K2的邮件发送模块,使用PHPMailer库提供了一系列配置和发送电子邮件的方法。
安装
最简单的安装方式是通过composer,将包添加到项目的composer.json文件中
.. code-block:: json
{
"require" : {
"k2/mailer": "dev-master"
}
}
执行以下命令
::
composer install
正确下载文件后,需要在app/config/modules.php中添加模块
<?php //archivo app/config/modules.php /* * ***************************************************************** * Iinstalación de módulos */ App::modules(array( '/' => include APP_PATH . '/modules/Index/config.php', include composerPath('k2/mailer', 'K2/Mailer'), ));
这样我们已经在应用程序中注册了该模块。
配置
在文件 app/config/config.ini 中,我们需要创建邮件账户的连接配置,以下是一些可用的参数
;archivo app/config/config.ini [k2_mailer] debug = On|Off ;opcional, habilita el módo debug para ve mensajes de error en desarrollo. transport = smtp|sendmail|mail|qmail|gmail ;parametro obligarotio, debe tener alguna de esas opciones. host = ;servidor de correo al que nos vamos a conectar ;opcional, solo si es smtp port = ;puerto de la conexion al servidor de correo. ;opcional, solo si es smtp fromname = Nombre del Remitente ;Obligatorio fromemail = correo@dominio.com ;correo del remitente, Obligatorio username = nombre de usuario ;opcional, solo si es smtp password = clave de usuario ;opcional, solo si es smtp enable = On ;indica si se envia ó no el correo, ideal para pruebas sin envio de correo. Opcional, On por defecto bcc[] = correo_oculto@dominio.com ;dir de correo a la que le llegan todos los correos enviados. Opcional
有了这些,我们就可以使用邮件发送服务了。
使用示例
<?php namespace Registro\Controller; use K2\Kernel\App; use K2\Mailer\Mailer; use K2\Kernel\Controller\Controller; use K2\Mailer\Exception\MailerException; class RegistroController extends Controller { protected function send(Mailer $mailer) { try{ if ( $mailer->send() ) { App::get("flash")->success("Se envió el correo exitosamente...!!!"); }else{ App::get("flash")->warning("Nó se pudo enviar el correo"); } }catch(MailerException $e){ App::get("flash")->error("Error al enviar el correo: " . $e->getMessage()); } } public function correoBasico_action() { $mailer = App::get("k2_mailer") ->setSubject("Este es el asunto del correo...!!!") ->setBody("<h2>Título mensaje</h2><p>Contenido del mensaje...</p>") ->addRecipient('correo@gmail.com'); $this->send($mailer); } public function enviarCorreo2_action($usuarioId) { $usuario = Usuarios::findByID($usuarioId); //obtenemos el contenido de la url email_templates/usuarios/registro/{id} //el cual es el html que se enviará por correo. $response = $this->getRouter()->forward("email_templates/usuarios/registro/$usuarioId"); if ( 200 === $response->getStatus() ){ //si la respuesta es exitosa. $email = App::get("k2_mailer") ->setSubject("Registro Exitoso") ->setBody($response); //tambien puede recibir un objeto Response $email->addRecipient($usuario->email, $usuario->nombres); $this->send($mailer); }else{ //si hubo un error. App::get("flash")->error("No se Pudo enviar el Correo...!!!"); } } public function usandoTwig_action($usuarioId) { $usuario = Usuarios::findByID($usuarioId); //acá se hace uso del método fromView de la clase Mailer, este método busca una vista twig y carga los //bloques subject y html para cargar el asunto y el cuerpo del mensaje para el correo respectivamente. //el segundo parametro del método fromView son las variables que se pasan a la vista. $mailer = App::get("k2_mailer") ->addRecipient($usuario->email, $usuario->nombres) ->fromView("@Modulo/vista.twig", array( 'usuario' => $usuario, )); $this->send($mailer); } }