我必须使用IMAP用symfony2开发简单的邮件客户端。我想知道从服务器检索消息的最好方法是什么(以gmail为例)?
我做了这样的事情:
public function indexAction($name)
{
$user = 'adress@gmail.com';
$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));
}
这条路对不对?它可以工作,但是它与symfony“标准”兼容吗?
发布于 2012-02-08 03:32:45
这与symfony的“标准”无关。但是,如果您将所有登录都移到一个服务类中,并使用symfony DepencyInjection来创建和获取您的服务,则可以使您的代码更加面向对象:
public function indexAction($name)
{
$user = 'adress@gmail.com';
$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));
}
类声明:
class MailChecker
{
public function receive($user, $password, $mailbox)
{
...imap_check()...
}
}
服务声明:
services:
mail.checker:
class: Project\YourBundle\Service\MailChecker
发布于 2016-08-03 00:07:37
您也可以使用this Symfony bundle来实现这一点,并将其用作服务。我是为旧的Symfony2设计的,但使用Symfony 3进行了测试,并且工作正常:)
https://stackoverflow.com/questions/9182364
复制相似问题