symfony imap

Manera correcta de recuperar correos por IMAP en symfony2



(2)

Esto no tiene nada que ver con los "estándares" de Symfony. Pero puedes hacer que tu código sea más OOP si mueves todo el inicio de sesión a una clase de servicio y usas DepencyInjection de Symfony para crear y obtener tu servicio:

public function indexAction($name) { $user = ''[email protected]''; $password = ''password''; $mailbox = "{imap.gmail.com:993/imap/ssl}INBOX"; $mails = $this->get("mail.checker")->receive($user, $password, $mailbox); return $this->render(''HtstMailBundle:Mail:index.html.twig'',array(''name''=>$name,''mail''=>$mails)); }

Declaración de clase:

class MailChecker { public function receive($user, $password, $mailbox) { ...imap_check()... } }

declaración de servicio:

services: mail.checker: class: Project/YourBundle/Service/MailChecker

Tengo que desarrollar un cliente de correo simple en symfony2 usando IMAP. Me pregunto cuál es la mejor manera de recuperar mensajes del servidor (veamos un ejemplo de Gmail).

Hice algo como esto:

public function indexAction($name) { $user = ''[email protected]''; $password = ''password''; $mailbox = "{imap.gmail.com:993/imap/ssl}INBOX"; $mbx = imap_open($mailbox , $user , $password); $ck = imap_check($mbx); $mails = imap_fetch_overview($mbx,"1:5"); return $this->render(''HtstMailBundle:Mail:index.html.twig'',array(''name''=>$name,''mail''=>$mails)); }

¿Es esto correcto, o no? Funciona, pero ¿es compatible con los "estándares" de Symfony?


También puedes usar este paquete de Symfony para eso y usarlo como un servicio. I está diseñado para Symfony2 antiguo, pero lo probé con Symfony 3 y funciona :)