powershell pop3 收取邮件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shrekz/article/details/53391071
$popserver="pop3.sina.com.cn"
$Username="username"
$password="password"
$CRLF = "`r`n";
$Text=$null
$Server = new-object System.Net.Sockets.TcpClient($popserver,110) 

try 
{ 
    #初始化 
    $NetStrm = $Server.GetStream() 
    $RdStrm= new-object  System.Io.StreamReader($Server.GetStream(),[Text.Encoding]::GetEncoding("utf-8")) 
    $RdStrm.ReadLine()

    #登录服务器过程 
    $Data = "USER "+ $Username+$CRLF 
    $szData = [Text.Encoding]::ASCII.GetBytes($Data.ToCharArray())
    $NetStrm.Write($szData,0,$szData.Length) 
    $RdStrm.ReadLine()

    $Data = "PASS "+ $password+$CRLF 
    $szData = [System.Text.Encoding]::ASCII.GetBytes($Data.ToCharArray())
    $NetStrm.Write($szData,0,$szData.Length) 
    $RdStrm.ReadLine()

    #向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小 
    $Data = "STAT"+$CRLF; 
    $szData = [System.Text.Encoding]::ASCII.GetBytes($Data.ToCharArray())
    $NetStrm.Write($szData,0,$szData.Length) 
    $RdStrm.ReadLine()

} 
catch
{ 
    $($_.Exception.Message)
} 

try 
{ 
    $Data = "RETR "+ 5158+$CRLF #获取编号为5158的邮件
    $szData = [System.Text.Encoding]::ASCII.GetBytes($Data.ToCharArray())
    $NetStrm.Write($szData,0,$szData.Length) 
    $szTemp = $RdStrm.ReadLine(); 

    if($szTemp[0] -ne '-') 
    { 
        #不断地读取邮件内容
        while(-not $RdStrm.EndOfStream){
        $Text+=$szTemp+$CRLF
        $szTemp=$RdStrm.ReadLine()
        }
}
 $Text|out-file mail.eml -Encoding utf8
} 
catch
{ 
    $($_.Exception.Message)
} 

$Data = "QUIT"+$CRLF; 
$szData = [System.Text.Encoding]::ASCII.GetBytes($Data.ToCharArray())
$NetStrm.Write($szData,0,$szData.Length); 
$RdStrm.ReadLine() 

#断开连接 
$NetStrm.Close(); 
$RdStrm.Close(); 



<#Data = "DELE" + MailNum.Text + CRLF; 
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); 
NetStrm.Write(szData,0,szData.Length); 
Status.Items.Add(RdStrm.ReadLine()); #>

猜你喜欢

转载自blog.csdn.net/shrekz/article/details/53391071