Powershell 通过POP3接收邮件

原创 2015年07月09日 20:56:53


################################################################################
#POP3接收邮件代码
function Get-Pop3Config(){
    $config=New-Object psobject
    $config|Add-Member -MemberType NoteProperty -Name POP3Server -Value "partner.outlook.cn"
    $config|Add-Member -MemberType NoteProperty -Name POP3Port -Value 995
    $config|Add-Member -MemberType NoteProperty -Name EmailAddress -Value "xxx@xxx.com"
    $config|Add-Member -MemberType NoteProperty -Name Passwd -Value "123456"
    $config|Add-Member -MemberType NoteProperty -Name OnlyReceiveHeader -Value "true"
    $config|Add-Member -MemberType NoteProperty -Name ClassFilePath -Value "c:\LumiSoft.Net.dll"
    return $config
}
function Connect-POP3Server(){
    $script:Pop3Config=Get-Pop3Config
    [void][reflection.assembly]::LoadFile($Pop3Config.ClassFilePath)
    $pop3=New-Object LumiSoft.Net.POP3.Client.POP3_Client
    if($pop3.IsConnected -ne 'true'){
        $pop3.Connect($Pop3Config.POP3Server,$Pop3Config.POP3Port,$true)
        $pop3.Login($Pop3Config.EmailAddress,$Pop3Config.Passwd)
    }
    $messages=$pop3.Messages
    $counts=$messages.Count
    #Write-Host "邮箱中总共有 $counts 封邮件" -ForegroundColor Green
    $rh=Read-Host "邮箱中总共有 $counts 封邮件,是否继续(Y/N)"
    if($rh -eq "y"){
        return $messages
    }else{
        break
    }
}

function Convert-ToByte(){
    $messages=Connect-POP3Server
    $allMessage=New-Object System.Collections.ArrayList
    foreach($message in $messages){
        if($message -ne $null){
            $psobject=New-Object psobject
            #$messageBytes=$message.MessageToByte()
            if($Pop3Config.OnlyReceiveHeader -eq 'true'){
                $messageString=[LumiSoft.Net.Mail.Mail_Message]::ParseFromByte($message.HeaderToByte())
            }else{
                $messageBytes=$message.MessageToByte()
                $messageString=[LumiSoft.Net.Mail.Mail_Message]::ParseFromByte($messageBytes)
            }
            $psobject| Add-Member -MemberType NoteProperty -Name From -Value $messageString.From
            $psobject| Add-Member -MemberType NoteProperty -Name To -Value $messageString.To
            $psobject| Add-Member -MemberType NoteProperty -Name Cc -Value $messageString.cc
            $psobject| Add-Member -MemberType NoteProperty -Name Bcc -Value $messageString.bcc
            $psobject| Add-Member -MemberType NoteProperty -Name Subject -Value $messageString.subject
            $psobject| Add-Member -MemberType NoteProperty -Name Body -Value $messageString.BodyHtmlText
           
            #$message.MarkForDeletion()
            [void]$allmessage.Add($psobject)
        }
    }
    return $allMessage
}

Convert-ToByte|ft

相关文章推荐

powershell pop3 收取邮件

powershell pop3 收取邮件
  • shrekz
  • shrekz
  • 2016年11月29日 11:53
  • 361

lumisoft pop3 imap接收邮件

  • 2013年06月19日 14:08
  • 5.71MB
  • 下载

基于POP3的JAVA邮件接收程序

有发送有接收才显得完整一点。 同样分两部分写: 一:POP3命令介绍(抄的);二:实例。 一:POP3命令介绍 telnet 119.119.119.212 110 -------------...

Pop3邮件接收

  • 2005年12月19日 10:51
  • 87KB
  • 下载

C#实现POP3邮件接收程序

来自:http://outofmemory.cn/code-snippet/2409/C-achieve-POP3-email-receive-program 本文通过运用C#来实现一个基于...

JavaMail通过IMAP和POP3接收未读以及设置已读邮件

javamailpop3imap 使用javaMail收邮件主要有两种协议,一种是pop3,一种是imap。这两种协议都可以用来收邮件,但是在其中的处理上是有区别的。pop3是不支持判断邮件是否为已读...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Powershell 通过POP3接收邮件
举报原因:
原因补充:

(最多只允许输入30个字)