Powershell - 从Gmail下载附件

问题描述 投票:2回答:1

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

$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

powershell imap imapx
1个回答
2
投票

参考the documentation

foreach($m in $messages) {
    $m.Subject
    foreach($r in $m.Attachments) {
        $r.Download()
        $r.Save('C:\Users\xxxx\Desktop\x\')
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.