Powershell - 从 Gmail 下载附件
Powershell - Download Attachment from 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
foreach($m in $messages) {
$m.Subject
foreach($r in $m.Attachments) {
$r.Download()
$r.Save('C:\Users\xxxx\Desktop\x\')
}
}
这就是我到目前为止所做的:
$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
foreach($m in $messages) {
$m.Subject
foreach($r in $m.Attachments) {
$r.Download()
$r.Save('C:\Users\xxxx\Desktop\x\')
}
}