Powershell 通过POP3接收邮件
2015-07-09 20:56
731 查看
################################################################################
#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
################################################################################
#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 操作SQL Server
- Powershell 的自动部署
- [批处理教程之Shell]002.Linux 常用命令大全
- 利用IShellExecuteHook接口对程序监控
- bash: mysql: command not found
- [转] Makefile中调用Shell
- /etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的区别
- [转] shell文本字符串处理
- Linux Shell命令系列(4)
- [转] Linux Shell 文本处理工具集锦
- putty或xshell上用vi/vim小键盘无法使用的解决方法
- Linux Shell命令系列(3)
- Linux Shell命令系列(2)
- Linux Shell命令系列(1)
- Linux Shell简单命令
- Linux Shell中的反引号,单引号,双引号
- [Shell] shell 脚本循环恢复的问题
- java exec shell cmd 用法
- adb shell am局限性
- 对shell中cat 和EOF的理解