代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
实现接收Pop3邮件的所有内容_记得下载附件
作者:
dezai
/ 发布于
2014/7/29
/
628
实现接收Pop3邮件的所有内容_记得下载附件
using System; using System.Text; using System.IO; using Email.POP3; using System.Data; namespace KingOper { public class POP { public POP() { } public static DataTable main(string SerName,string UserName,string Password) { DataTable dt=new DataTable("邮件"); dt.Columns.Add("FROM");//发件人 dt.Columns.Add("TO");//收件人 dt.Columns.Add("CC");//回复 dt.Columns.Add("SUBJECT");//主题 dt.Columns.Add("DATE");//日期 dt.Columns.Add("CONTENT-TYPE"); dt.Columns.Add("CHARSET"); dt.Columns.Add("MESSAGE-ID");//邮件id dt.Columns.Add("MESSAGE SIZE");//大小 dt.Columns.Add("EMAILOBJ");//内容 dt.Columns.Add("Attachments");//附件 dt.Columns.Add("FILEDIR");//保存目录 try { POP3 objPOP3 = new POP3(SerName, UserName, Password); Console.WriteLine(objPOP3.Connect() ? "Connected" : "Can't connect"); Console.WriteLine(objPOP3.Login() ? "Logged in" : "Can't login"); objPOP3.QueryServer(); int EmailCount=objPOP3.TotalMailCount; for (int i = 1; i <= EmailCount; i++) { EmailMessage objEmail = objPOP3.GetMessage(i,false); // use true to get headers only DataRow dr = dt.NewRow(); dr[0]=objEmail.From; dr[1]=objEmail.To; dr[2]=objEmail.Cc; dr[3]=objEmail.Subject; dr[4]=objEmail.Date; dr[5]=objEmail.ContentType; dr[6]=objEmail.Charset; dr[7]=objEmail.GetCustomHeader("Message-ID"); dr[8]=objEmail.Size; dr[9]=QPDecode(objEmail.Body,System.Text.Encoding.Default); string fj=""; if (objEmail.IsAnyAttachments) { int sum=0; for(int a = 0; a < objEmail.Attachments.Count; a++) { Attachment objFile = (Attachment)objEmail.Attachments[a]; if (!objFile.IsFileAttachment) { if (objFile.TextBody != null) { sum++; fj+=sum.ToString()+":"+objFile.FileName; if(!System.IO.Directory.Exists(@"d:\pop3\fj")) { System.IO.Directory.CreateDirectory(@"d:\pop3\fj"); } StreamWriter swfj = new StreamWriter(@"d:\pop3\"+sum.ToString()+":"+objFile.FileName); swfj.Write(objFile.Data); swfj.Close(); } } } } dr[10]=fj; dr[11]=@"d:\pop3\m_" + i.ToString() + ".eml"; dt.Rows.Add(dr);//构建DataTable的数据 if(!System.IO.Directory.Exists(@"d:\pop3")) { System.IO.Directory.CreateDirectory(@"d:\pop3"); } StreamWriter sw = new StreamWriter(@"d:\pop3\m_" + i.ToString() + ".eml"); sw.Write(objEmail.ToString()); sw.Close(); } objPOP3.Close(); } catch(System.Exception ex) { new Exception(ex.ToString()); } return dt; } /// <summary> /// 对邮件QP编码进行解码。 /// </summary> /// <param name="data">邮件编码内容</param> /// <param name="encoding">系统编码方式</param> /// <returns></returns> public static string QPDecode(string data,Encoding encoding) { char ch; string ret=""; byte[] bytes=new byte[data.Length]; int bIdex=0; try { for(int rIndex=0; rIndex<data.Length;rIndex++) { ch=data[rIndex]; if(ch=='=') { rIndex++; if( rIndex<data.Length && ( Char.IsDigit(data[rIndex])||Char.IsLetter(data[rIndex]))) { bytes[bIdex++]=Byte.Parse(data.Substring(rIndex++,2),System.Globalization.NumberStyles.HexNumber); continue; } if( rIndex<data.Length && data[rIndex]=='\r' && (rIndex+1)<data.Length && data[rIndex+1]=='\n') { rIndex++; continue; } } if(ch=='\r'||ch=='\n') continue; bytes[bIdex++]=(byte)ch; } ret=encoding.GetString(bytes,0,bIdex); } catch(Exception ex) { Console.WriteLine(ex.Message); } return ret; } } }
试试其它关键字
Pop3邮件
接收Pop3邮件
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dezai
贡献的其它代码
(
1065
)
.
双色球
.
列出所有物理网络适配器
.
快乐数的 Python 实现
.
计算当月还剩天数
.
猜属相
.
二十四小时时钟
.
每日一语
.
很酷的日历
.
超长日历表单
.
最简单的时钟
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3