代码之家  ›  专栏  ›  技术社区  ›  user6496229

Powershell-从Gmail下载附件

  •  2
  • user6496229  · 技术社区  · 7 年前

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

    $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
        }
     }
    

    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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Bacon Bits    5 年前

    参考 the documentation :

    foreach($m in $messages) {
        $m.Subject
        foreach($r in $m.Attachments) {
            $r.Download()
            $r.Save('C:\Users\xxxx\Desktop\x\')
        }
    }
    
    推荐文章