【问题标题】:Search Imap folders for unread emails with Mailkit and Powershell使用 Mailkit 和 Powershell 在 Imap 文件夹中搜索未读电子邮件
【发布时间】:2020-06-18 15:40:16
【问题描述】:

我想使用 Mailkit 和 Powershell 在我的所有 Imap 文件夹中搜索未读电子邮件。但我什至无法列出所有文件夹。代码如下:

$cl = New-Object MailKit.Net.Imap.ImapClient([mailkit.protocollogger]::new([console]::OpenStandardOutput()))

#connect
$cl.Connect($mailserver, $port)
$cl.Authenticate($username,$password)   
$cl.GetFolders($Cl.PersonalNamespaces[0])

结果始终是:“文件夹当前未打开。”但我想我需要先阅读文件夹对象才能打开它们? 有趣的是,protocollogger 很好地列出了我所有的文件夹:

Connected to imaps://.................
S: * OK [CAPABILITY IMAP4rev1 CHILDREN ENABLE ID IDLE LIST-EXTENDED LIST-STATUS LITERAL- MOVE NAMESPACE QUOTA SASL-IR SORT SPECIAL-USE THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN AUTH=LOGIN AUTH=PLAIN] IMAP server ready H mieue103 15.4 IMAP-1MRDBi-1ixnXt3r6a-00NV8i
C: A00000000 AUTHENTICATE PLAIN AGQucmfhgffhtFjZSghgQAjrhgrTc1OTg4NjUweHttztYj
S: A00000000 OK AUTHENTICATE completed
C: A00000001 CAPABILITY
S: * CAPABILITY IMAP4rev1 CHILDREN ENABLE ID IDLE LIST-EXTENDED LIST-STATUS LITERAL- MOVE NAMESPACE QUOTA SASL-IR SORT SPECIAL-USE THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN APPENDLIMIT=140000000
S: A00000001 OK CAPABILITY completed
C: A00000002 NAMESPACE
S: * NAMESPACE (("" "/")) NIL NIL
S: A00000002 OK NAMESPACE completed
C: A00000003 LIST "" "INBOX" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\HasNoChildren \Subscribed) "/" INBOX
S: A00000003 OK LIST completed
C: A00000004 LIST (SPECIAL-USE) "" "*" RETURN (SUBSCRIBED CHILDREN)
S: * LIST (\Archive \HasChildren \Subscribed) "/" Archiv
S: * LIST (\Drafts \HasNoChildren \Subscribed) "/" Entw&APw-rfe
S: * LIST (\Sent \HasNoChildren \Subscribed) "/" "Gesendete Objekte"
S: * LIST (\Trash \HasNoChildren \Subscribed) "/" Papierkorb
S: * LIST (\Junk \HasNoChildren \Subscribed) "/" Spam
S: A00000004 OK LIST completed
C: A00000005 LIST (SUBSCRIBED) "" "*" RETURN (CHILDREN)
S: * LIST (\HasChildren \Subscribed) "/" Work1
S: * LIST (\HasChildren \Subscribed) "/" Work2

... long list of all my folders ...

S: A00000005 OK LIST completed

但我只是收到错误消息:

format-default : The folder is not currently open.
    + CategoryInfo          : NotSpecified: (:) [format-default], FolderNotOpenException
    + FullyQualifiedErrorId : MailKit.FolderNotOpenException,Microsoft.PowerShell.Commands.FormatDefaultCommand

【问题讨论】:

    标签: powershell imap mailkit


    【解决方案1】:

    您的日志显示您粘贴的代码 sn-p 工作正常。

    您没有从您粘贴的任何代码中获得异常。

    您在粘贴的代码之后从代码中获取了异常。

    要修复您提到的异常,您需要在您尝试搜索的文件夹上调用Open(FolderAccess.ReadWrite) 方法,然后才能调用Search()

    【讨论】:

    • 评论不用于扩展讨论;这个对话是moved to chat
    • 总结其他人的讨论:错误确实出现在最后一行“$cl.GetFolders($Cl.PersonalNamespaces[0])”。我仍然不知道为什么。
    猜你喜欢
    • 1970-01-01
    • 2016-05-01
    • 2014-07-08
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多