首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在symfony2中使用IMAP检索邮件的正确方法

在symfony2中使用IMAP检索邮件的正确方法
EN

Stack Overflow用户
提问于 2012-02-08 03:13:19
回答 2查看 7.5K关注 0票数 19

我必须使用IMAP用symfony2开发简单的邮件客户端。我想知道从服务器检索消息的最好方法是什么(以gmail为例)?

我做了这样的事情:

代码语言:javascript
复制
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“标准”兼容吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-08 03:32:45

这与symfony的“标准”无关。但是,如果您将所有登录都移到一个服务类中,并使用symfony DepencyInjection来创建和获取您的服务,则可以使您的代码更加面向对象:

代码语言:javascript
复制
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));
}

类声明:

代码语言:javascript
复制
class MailChecker
{
    public function receive($user, $password, $mailbox)
    {
        ...imap_check()...
    }
}

服务声明:

代码语言:javascript
复制
services:
    mail.checker:
        class: Project\YourBundle\Service\MailChecker
票数 19
EN

Stack Overflow用户

发布于 2016-08-03 00:07:37

您也可以使用this Symfony bundle来实现这一点,并将其用作服务。我是为旧的Symfony2设计的,但使用Symfony 3进行了测试,并且工作正常:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9182364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档