我必须使用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));
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方式吗?它有效,但是它与symfony"标准"兼容吗?
mez*_*eze 19
这与symfony"标准"无关.但是,如果将所有登录名都移到服务类并使用symfony DepencyInjection创建并获取服务,则可以使代码更加OOP:
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));
}
Run Code Online (Sandbox Code Playgroud)
舱位声明:
class MailChecker
{
public function receive($user, $password, $mailbox)
{
...imap_check()...
}
}
Run Code Online (Sandbox Code Playgroud)
服务声明:
services:
mail.checker:
class: Project\YourBundle\Service\MailChecker
Run Code Online (Sandbox Code Playgroud)