net如何建立企业或个人邮箱

原创 2007年09月28日 09:34:00

******************************************
系统设计语言:ASP.NET(C#)
系统所需框架:Jmail(企业版:JMail44_pro)
功能:实现发送和接收邮件
日期:2007年3月8日
来源:http://blog.163.com/xiaohui_liu0406
说明:163邮件端口 110(POP3), 25(SMTP)
******************************************

在.NET FRAMEWORK 2.0 中自带有邮件发送的功能,但不能实现邮件的接收,而且该功能局限于个人用户,所以有必要借助第三方来实现邮件的接发。由于发送比较简单,这里就不说了。

先来认识一下Jmail。W3 JMail v4.4 Professional 是一个 COM 的组件,在免费版只能实现发送功能。具体的说明在BAIDU搜索。

private void ReciveEMailByJmail()
{

首先建立收邮件对象,有两种方式,分别为POP3和SMTP。在程序中根据自己的需求任意选一,具体方法如下:
    jmail.POP3Class popMail = new POP3Class();
    jmail.SMTPClass smtpMail = new SMTPClass();

其次,建立邮件信息接口,该接口实现邮件的通讯,用它来获得邮件的所有信息,同时,建立附件集接口和附件接口,用来接收多个附件。

jmail.Message mailMessage;
jmail.Attachments atts;
jmail.Attachment att;

下面是主体部分。

try{
    连接那个邮箱的参数,本文以163为例。该对象的Connect方法有4个参数,没有重载。分别为绑定邮箱的地址、密码、服务器名称、端口。用户可以退换进行赋值。
        popMail.Connect("xiaohui_liu0406@163.com", "psd", "pop3.163.com", 110);

连接上后,下面来判断是否如果收到邮件。popMail.Count属性指邮件的数量。

if (0 < popMail.Count)
    {
    根据取到的邮件数量依次取得每封邮件
        for (int i = 1; i <= popMail.Count; i++)
        {
    通过循环取得每一条邮件信息
            mailMessage = popMail.Messages[i];
    取得该邮件的附件集合
            atts = mailMessage.Attachments;
    设置邮件的编码方式
            mailMessage.Charset = "GB2312";
    设置邮件的附件编码方式
            mailMessage.Encoding = "Base64";
    是否将信头编码成iso-8859-1字符集
            mailMessage.ISOEncodeHeaders = false;
    邮件的优先级,这里txtpriority.Text要求用户自己设置。
    +++++++++++++++++++++++++++++++++++++++
    优先级.   范围在1-5之间   
    1   高优先级.   有些邮件程序称之为紧急   
    2   也是高优先级   
    3   普通优先级   
    4   低优先级   
    5   最低的优先级   
    如:JMail.Priority = 3
    +++++++++++++++++++++++++++++++++++++++++
            txtpriority.Text = mailMessage.Priority.ToString();

邮件的发送人的信箱地址,txtSendMail.Text 为用户自己输入。以下类似。->>
            txtSendMail.Text = mailMessage.From;

        邮件的发送人

        txtSender.Text = mailMessage.FromName;

        邮件主题

        txtSubject.Text = mailMessage.Subject;

        邮件内容

        txtBody.Text = mailMessage.Body;

        邮件大小

        txtSize.Text = mailMessage.Size.ToString();

        取所有附件。进行循环分别获取。   

        for (int j = 0; j < atts.Count; j++)
            {

              取得附件

              att = atts[j];

              附件名称

              string attname = att.Name;

               保存路径。这里是保存在本机。

               att.SaveToFile("d://AtlasStudy//" + attname);
             }
          }

      清除缓存
          att = null;
          atts = null;

  }

  else

  {
           Response.Write("没有新邮件!");

  }

  销毁对象,断开连接。
      popMail.DeleteMessages();

  popMail.Disconnect();

  popMail = null;

}

catch

{

     Response.Write("Warning!请检查邮件服务器的设置是否正确!");

}
}

以上程序在互联网上比较流行,明显有好多的不足,譬如:不知道邮件是否是最新的,每次连接都要把所有的邮件都下载到本地,没有实现与数据库的交互等等,那么这些就需要用户自己进行二次开发,我相信看了以上的解释说明,建立企业邮箱不远了。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    如何只接收没接收过的邮件。

接收所有邮件是能接收的。现在有几种思路:
    一种思路是:记录最后下载时间,查看pop3.Messages(i).Date(发送时间)是否比现有时间新,如果新就下载。可是每次都要下载下来读,和下载整个邮件时间差不多。
    一种思路是:用 pop3.GetLastUnreadMessage ,可是有些服务器不支持。
 

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

javax.mail 调用企业邮箱发送邮件,调用个人邮箱发送邮件

javax.mail 调用企业邮箱发送邮件,调用个人邮箱发送邮件 javax.mail 调用企业邮箱发送邮件,调用个人邮箱发送邮件 javax.mail 调用企业邮箱发送邮件,调用个人邮箱发送邮件 需...

redmine配置邮箱提醒步骤(qq企业邮箱和个人邮箱)

1.打开如下目录文件 2.修改参数如下 注意:如果邮箱地址是以https开头的必须设置ssl参数设置为true,否则测试的时候会收到502 Proxy Error错...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

网易企业邮箱国内首推Webmail智能终端版

网易科技讯 9月13日消息,网易企业邮箱(qiye.163.com)今日宣布,Webmail智能终端版正式上线。 该版本是网易企业邮箱为iPad、iPhone及Android系统的智能终端量身定制的...

企业信息化系列:邮箱服务器

邮件服务器是一种用来负责电子邮件收发管理的设备。它比网络上的免费邮箱更安全和高效,因此一直是企业公司的必备设备 简介    图1 电子邮件是因特网上最为流行的应用之一。如同邮递员分发投...

利用免费顶级域名,免费nat123域名解析服务,搭建免费企业邮箱

搭建小型企业邮箱,完全没必要自己搞邮箱服务器。可直接利用现有的免费资源,搭建免费企业邮箱,无需自己出任何资源花费。 利用到的资源有: 免费tk顶级域名。免费nat123域名解析服务。免费网易企业邮...

企业邮箱Postfix运维

postfix企业邮箱常用设置
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)