2

所以这就是我到目前为止所做的:

$dll = 'C:\Users\xxxx\Desktop\v4.6\imapx.dll'
[Reflection.Assembly]::LoadFile($dll)

$Username = "xxxxxx"
$Password = "yyyyyy"


# Initialize the IMAP client
$client = New-Object ImapX.ImapClient

###set the fetching mode to retrieve the part of message you want to retrieve, 
###the less the better
$client.Behavior.MessageFetchMode = "Full"
$client.Host = "imap.gmail.com"
$client.Port = 993
$client.UseSsl = $true
$client.Connect()
$client.Login($Username, $Password)

# Get folder/label object containing emails you want to read from
$res = $client.folders| where { $_.path -eq 'Inbox' }


# Search email threads inside the subfolder
$numberOfMessagesLimit = 10
$messages = $res.search("All", $client.Behavior.MessageFetchMode, $numberOfMessagesLimit)

# Display the messages in a formatted table
$messages | ft *


foreach($m in $messages){
$m.Subject
foreach($r in $m.Attachments){
$r | Out-File C:\Users\xxxx\Desktop\x\log.txt
    }
 }

我在 log.txt 中获得了有关附件文件的信息。

ContentId               : 
FileData                : {120, 120, 120, 120}
FileName                : test.txt
Downloaded              : True
ContentType             : text/plain; name=test.txt; charset=US-ASCII
ContentTransferEncoding : Base64
FileSize                : 4

好的,很好....但是现在的问题是,我怎样才能下载附件本身??!:D

4

1 回答 1

2

参考文档

foreach($m in $messages) {
    $m.Subject
    foreach($r in $m.Attachments) {
        $r.Download()
        $r.Save('C:\Users\xxxx\Desktop\x\')
    }
}
于 2017-07-21T20:31:19.407 回答