2010-08-26 10 views
6

मैं vb.net (pop3) का उपयोग कर अपने मेल सर्वर से ईमेल पुनर्प्राप्त करने के लिए ओपन सोर्स घटक का उपयोग कर रहा हूं, लेकिन क्योंकि मेरे पास बहुत सारे संदेश हैं, यह मुझे प्रतिक्रिया देता है टाइम आउट और मुझे लगता है कि अगर मुझे अभी नए संदेश मिलेंगे तो यह होगा तेजी से पढ़ना। यह मेरा कोड है:पॉप 3 का उपयोग करके केवल अपठित ईमेल पुनर्प्राप्त कैसे करें?

Dim popp As New Pop3Client("[email protected]", "*******", "pop3.mail.com") 
    popp.AuthenticateMode = Pop3AuthenticateMode.Pop 
    popp.Port = 110 
    'popp.Ssl = True 
    popp.Authenticate() 
    Dim msglist As New List(Of String) 

    If popp.State = Pop3ConnectionState.Authenticated Then 
     Dim totalmsgs As Integer = popp.GetTotalMessageCount() 

     If totalmsgs > 0 Then 
      For index As Integer = 1 To totalmsgs 
       Dim msg As Pop3Message = popp.GetMessage(index) 
       msglist.Add(msg.Subject) 

      Next 

      popp.Close() 
     End If 
    End If 
    Return msglist 

कृपया मैं कुछ मदद की अगर मैं एक गलत तरीके से घटक उपयोग कर रहा हूँ की जरूरत है या अगर वहाँ एक और घटक है मैं क्या देख रहा हूँ है। बी। : मेरा घटक नाम "Higuchi.Mail.dll" या "OpenPOP.dll" है और दोनों समान हैं।

धन्यवाद

उत्तर

4

पॉप 3 ट्रैक करने के लिए है कि क्या संदेशों को पढ़ने या अपठित रहे capibility जरूरत नहीं है। मैं सुझाव दूंगा कि आप अपनी सीमा को सीमित संख्या में 50 या 100 तक सेट करें। शायद आप कुछ प्रकार की पेजिनेशन सिस्टम कर सकते हैं।

इस कोड को एक समारोह के भीतर हो, ताकि आप यह इतना की तरह कॉल कर सकते हैं की जरूरत है:

Sub Main 
    Dim start As Integer = Integer.parse(Request.QueryString("start")) 
    Dim count As Integer = Integer.parse(Request.QueryString("count")) 
    Dim subjects As New List(Of String) 
    subjects = getSubjects(start, count) 

    'Do whatever with the results... 
    ' 
End Sub 

Function getSubjects(ByVal startItem As Integer, ByVal endItem as Integer) As List(Of String) 
    Dim popp As New Pop3Client("[email protected]", "*******", "pop3.mail.com") 
    popp.AuthenticateMode = Pop3AuthenticateMode.Pop 
    popp.Port = 110 

    popp.Authenticate() 
    Dim msglist As New List(Of String) 

    If popp.State = Pop3ConnectionState.Authenticated Then 
     Dim totalmsgs As Integer = popp.GetTotalMessageCount() 
     Dim endItem As Integer = countItems + startItem 
     If endItem > totalmsgs Then 
      endItem = totalmsgs 
     End If 

     If totalmsgs > 0 Then 
      For index As Integer = startItem To endItem 
       Dim msg As Pop3Message = popp.GetMessage(index) 
       msglist.Add(msg.Subject) 

      Next 

      popp.Close() 
     End If 
    End If 
    Return msglist 
End Function 

बस कार्यक्रम के लिए startItem 50 के बगल में पचास प्राप्त मान बदलने के लिए है (आइटम 50-100)

+0

क्या आप मुझे पेजिंग का उपयोग करने के लिए नमूना दे सकते हैं। –

+0

मैंने फ़ंक्शन और इसे कॉल करने का एक उदाहरण जोड़ा – js1568

1

पीओपी 3 प्रोटोकॉल में देखा/अदृश्य संदेशों की धारणा नहीं है।

क्या आप IMAP का उपयोग नहीं कर सकते?

यह आपको पीओपी 3 की तुलना में अधिक सुविधाएं (जैसे खोज, फ़्लैगिंग, फ़ोल्डर प्रबंधन) देगा।

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

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