2012-02-07 11 views
18

मुझे IMAP का उपयोग करके symfony2 में सरल मेल क्लाइंट विकसित करना है। मैं सोच रहा हूं कि सर्वर से संदेशों को पुनर्प्राप्त करने का सबसे अच्छा तरीका क्या है (उदाहरण के लिए जीमेल लेना)?symfony2 में IMAP द्वारा मेल पुनर्प्राप्त करने का सही तरीका

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)); 
} 

यह सही रास्ता है, या नहीं:

मैं कुछ इस तरह किया था? यह काम करता है, लेकिन क्या यह सिम्फनी "मानकों" के साथ संगत है?

उत्तर

19

इसका सिम्फनी "मानकों" से कोई लेना देना नहीं है।

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)); 
} 

कक्षा घोषणा:

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

सेवा declartion:

अगर आप बनाते हैं और अपने सेवा प्राप्त करने के लिए एक सेवा वर्ग और उपयोग सिम्फोनी DepencyInjection के सभी प्रवेश के लिए कदम लेकिन आप अपने कोड अधिक OOP कर सकते हैं
services: 
    mail.checker: 
     class: Project\YourBundle\Service\MailChecker 
1

आप इसके लिए this Symfony bundle का भी उपयोग कर सकते हैं और इसे सेवा के रूप में उपयोग कर सकते हैं। मुझे पुराने सिम्फनी 2 के लिए डिज़ाइन किया गया है लेकिन सिम्फनी 3 के साथ इसका परीक्षण किया गया है और काम करता है :)

संबंधित मुद्दे