none
vb.net pop3/imap,判斷郵件已讀和未讀 RRS feed

  • 問題

  • 一開始是用pop3收信,不過後來發現它並沒有提供郵件已/未讀的功能

    所以改用網上說有提供此功能的imap收信,但是我卻怎麼樣也找不到用法

    已經一一把屬性叫出來去試,還是找不到@@

    以下是我取得收件匣所有郵件的程式

    Dim clnt As New Imap4Client()
    Dim inbox As Mailbox
    
    clnt.ConnectSsl("imap.gmail.com", 993)
    
    clnt.Login(帳號,密碼)
    
    Mailbox = clnt.SelectMailbox("inbox")

    花了好幾天在找可以判斷未讀郵件的方法,始終沒有結果

    如果還有其他用法請幫幫我!!!!!

    2013年1月16日 上午 02:58

解答

  • 你是使用 MailSystem.NET嗎?? (我用Imap4Client來搜尋)

    我是沒用過這套DLL,
    如果使你是用這套dll的話,剛剛看了一下 codeplex MailSystem.NET 提供的Source Code
    http://mailsystem.codeplex.com/SourceControl/changeset/view/70774#541807

    Class Library -  ActiveUp.Net.Imap4 - Properties - Mailbox.cs 裡 (搜尋一下read的字眼)
    看到似乎他是以flag的方式來標示read or unread

    或許你可以參考一下他的Source Code以及每個Function 上面的範例寫法來試試看

    • 已標示為解答 Lai_Yuli 2013年1月17日 上午 02:39
    2013年1月16日 上午 06:15
  • 感謝各位的回覆,最後我終於找到判斷已讀/未讀的方法了

    就是以下這段程式碼

    inbox.Fetch.Flags(1).Merged="(\seen)" '信件已讀
    
    inbox.Fetch.Flags(1).Merged="()"  '信件未讀
    
    inbox.Fetch.MessageObject(1) '讀取信件後Merged會自動變成已讀

    • 已標示為解答 Lai_Yuli 2013年1月17日 上午 02:39
    2013年1月17日 上午 02:38

所有回覆

  • 沒有什麼特別好的方法, 一般可以加回條要求收件人簽收
    2013年1月16日 上午 04:24
  • 沒有什麼特別好的方法, 一般可以加回條要求收件人簽收

    this大你誤會我的意思了,

    我是要判斷自己的"收件匣"裡的信件是否已讀,

    簡單講就是我要寫一支類似outlook的程式,收取信箱中未讀的信件。

    2013年1月16日 上午 05:59
  • 你是使用 MailSystem.NET嗎?? (我用Imap4Client來搜尋)

    我是沒用過這套DLL,
    如果使你是用這套dll的話,剛剛看了一下 codeplex MailSystem.NET 提供的Source Code
    http://mailsystem.codeplex.com/SourceControl/changeset/view/70774#541807

    Class Library -  ActiveUp.Net.Imap4 - Properties - Mailbox.cs 裡 (搜尋一下read的字眼)
    看到似乎他是以flag的方式來標示read or unread

    或許你可以參考一下他的Source Code以及每個Function 上面的範例寫法來試試看

    • 已標示為解答 Lai_Yuli 2013年1月17日 上午 02:39
    2013年1月16日 上午 06:15
  • https://developers.google.com/google-apps/email-settings/?hl=zh-TW

    阿尼大,我不太懂網頁上的意思

    我是要判斷自己信箱中的信件讀取了沒,但是網頁上IMAP的設置卻都是針對Gmail平台的設定在做設置

    另外,設置Filters的部份是有提到是否將信件設定為已讀,

    但是好像是要先建立一個Filters去寄信然後才能做設定,跟我的需求似乎不太一樣耶!!


    • 已編輯 Lai_Yuli 2013年1月16日 上午 06:20
    2013年1月16日 上午 06:20
  • 你是使用 MailSystem.NET嗎?? (我用Imap4Client來搜尋)

    我是沒用過這套DLL,
    如果使你是用這套dll的話,剛剛看了一下 codeplex MailSystem.NET 提供的Source Code
    http://mailsystem.codeplex.com/SourceControl/changeset/view/70774#541807

    Class Library -  ActiveUp.Net.Imap4 - Properties - Mailbox.cs 裡 (搜尋一下read的字眼)
    看到似乎他是以flag的方式來標示read or unread

    或許你可以參考一下他的Source Code以及每個Function 上面的範例寫法來試試看

    THP_柏大感謝您,看起來蠻像是我要的,我先來去研究看看。
    2013年1月16日 上午 07:01
  • 我以為你是要這個

    2013年1月16日 上午 07:06
  • 我以為你是要這個

    阿尼大,這部份的程式我又更無解了,我確實是要取出"未讀信件"

    但是因為沒有參考可以Imports,所以完全無法理解程式的意思

    能否跟我說一下"AppsExtendedFeed"是什麼??

    2013年1月16日 上午 07:36
  • 阿尼大提供的應該是Google 撰寫提供的API,就不是你所使用的MailSystem.Net

    這部分你需要下載他的API來使用,
    找了一下,可能是這邊來下載
    https://developers.google.com/gdata/docs/client-libraries

    相關的使用文件,則使再參考阿尼大所提供的連結吧。

    2013年1月16日 下午 04:43
  • 阿尼大提供的應該是Google 撰寫提供的API,就不是你所使用的MailSystem.Net

    這部分你需要下載他的API來使用,
    找了一下,可能是這邊來下載
    https://developers.google.com/gdata/docs/client-libraries

    相關的使用文件,則使再參考阿尼大所提供的連結吧。

    THP_柏大謝謝你的回覆,但是目前光是MailSystem.Net就已經很讓我花時間去研究

    所以暫時是不會去研究Google的API了。


    • 已編輯 Lai_Yuli 2013年1月17日 上午 01:29
    2013年1月17日 上午 01:29
  • 感謝各位的回覆,最後我終於找到判斷已讀/未讀的方法了

    就是以下這段程式碼

    inbox.Fetch.Flags(1).Merged="(\seen)" '信件已讀
    
    inbox.Fetch.Flags(1).Merged="()"  '信件未讀
    
    inbox.Fetch.MessageObject(1) '讀取信件後Merged會自動變成已讀

    • 已標示為解答 Lai_Yuli 2013年1月17日 上午 02:39
    2013年1月17日 上午 02:38