2017-07-21 22 views
1

下載附件所以這就是我所做的迄今:PowerShell的 - 從Gmail中

$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

+0

什麼方法/屬性不'$ R | gm'回報? – LotPings

回答

2

參考the documentation

foreach($m in $messages) { 
    $m.Subject 
    foreach($r in $m.Attachments) { 
     $r.Download() 
     $r.Save('C:\Users\xxxx\Desktop\x\') 
    } 
} 
+0

謝謝;我應該學會更好地搜索。 –