LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

c#中用LumiSoft类库实现IMAP4接收邮件的简单代码

admin
2017年10月21日 18:31 本文热度 6712

发现下载回来的lumisoft组件版本好像比较新,把网上见到的代码用的函数都否决了。。

囧。。研究了半天,改了一点东西出来。

以下代码非完整程序代码,只是一些片段的截取和说明=_=

 

using LumiSoft . Net . IMAP . Client;
using LumiSoft.Net.IMAP;

 

  static void Main ( ){

IMAP_Client IMAPServer = new IMAP_Client ( );
   try
   {
    //连接邮件服务器通过传入邮件服务器地址和用于IMAP协议的端口号
    IMAPServer . Connect ( @"imap.163.com" , 143 );

    //登陆邮箱,前者帐号后者密码
    IMAPServer . Login ("xyzlok@163.com" , @"****" );
   //选中收件箱

    IMAPServer . SelectFolder ( "INBOX" );

    

    //取出收件箱
    var folder = IMAPServer . SelectedFolder;

//收件箱邮件总数

   folder . MessagesCount . ToString ( );

//收件箱未读邮件总数

   folder . RecentMessagesCount . ToString ( ) ;

 

//以下开始取出邮件

//首先确定取第x到第n封邮件,"1:*"表示第1封到最后一封

    var seqSet =LumiSoft . Net . IMAP . IMAP_t_SeqSet . Parse ( "1:*" );

//根据数组中的成员决定取出邮件的那些信息

    var imap_t_Fetch_i = new IMAP_t_Fetch_i[]{
      new IMAP_t_Fetch_i_Envelope(),//邮件的标题、正文等信息
                        new IMAP_t_Fetch_i_Flags(),//此邮件的标志,应该是已读未读标志
                        new IMAP_t_Fetch_i_InternalDate(),//貌似是收到的日期
                        new IMAP_t_Fetch_i_Rfc822(),//Rfc822是标准的邮件数据流,可以通过Lumisoft.Net.Mail.Mail_Message对象解析出邮件的所有信息(不确定有没有附件的内容)。

new IMAP_t_Fetch_i_Uid()};//返回邮件的UID号,UID号是唯一标识邮件的一个号码

//创建一个符合lumisoft的回调函数的委托。

//当调用fetch函数完成时,会自动调用用户自定义的函数,这里是Fetchcallback(我自己起的名字,名字无意义,保证参数是object,LumiSoft . Net . EventArgs<IMAP_r_u> 两个就好
    EventHandler<LumiSoft.Net.EventArgs<IMAP_r_u>> lumisoftHandler = new EventHandler<LumiSoft . Net . EventArgs<IMAP_r_u>> ( Fetchcallback);
   

//把上边定义好的参数传入fetch函数,就会取出邮件

//lumisoftHandler指向的函数在每取出一封邮件的时候会被触发一次
    IMAPServer . Fetch ( false , seqSet , imap_t_Fetch_i , lumisoftHandler );

 

   }
   catch ( Exception ex )
   {
    throw ex;
   }
   finally
   {
    IMAPServer . Disconnect ( );
   }
  }//到这里Main函数结束了

 

//用来被回调的函数

  public static void Fetchcallback( object sender , LumiSoft . Net . EventArgs<IMAP_r_u> eventArgs )
  {

//把传入参数重新封装,用于取出邮件的相关信息
   IMAP_r_u_Fetch x = eventArgs . Value as IMAP_r_u_Fetch;

//这是邮件的标题

//能有效地取出神马除了取决于邮件本身外,还受到上文imap_t_Fetch_i数组中成员的影响
   MessageBox . Show ( x . Envelope . Subject );

var st = y . Value . Rfc822.Stream;

st . Position = 0;

LumiSoft.Net.Mail.Mail_Message mime = LumiSoft . Net . Mail . Mail_Message . ParseFromStream ( st );

MessageBox . Show ( mime . BodyText );

//mime里边还有很多对象可以自己挖掘

  }

该文章在 2017/10/21 18:31:28 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved