您的位置:首页 > 运维架构 > Shell

powershell pop3 收取邮件

2016-11-29 11:53 260 查看
$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()); #>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  powershell pop 邮件