2019独角兽企业重金招聘Python工程师标准>>>

MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

MailBee.NET Objects介绍和试用点击查看>>>

本文主要介绍了接收电子邮件(POP3)的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

要接收简单的电子邮件,开发人员应使用POP3对象。创建此对象的新实例,如下所示:

C#:

Pop3 pop = new Pop3();

VB.NET:
Dim pop As Pop3 =  New Pop3()

基本属性和方法

要接收电子邮件,MailBee.NET Obiects与POP3服务器通信。要连接到POP3服务器,开发人员只需指定此POP3服务器的主机名(或相同的IP地址),如下所示:

C#:

pop.Connect("mail.domain.com");

VB.NET:
pop.Connect("mail.domain.com")

或者

C#:

pop.Connect("127.0.0.1");

VB.NET:
pop.Connect("127.0.0.1")

由于所有POP3服务器都需要身份验证,开发人员应指定登录邮箱的登录名和密码,如下所示:

C#:

pop.Login("login", "password");

VB.NET:
pop.Login("login", "password")

当开发人员成功登录邮箱时,可以通过调用POP3对象的DownloadEntireMessage方法轻松下载此邮箱包含的任何邮件。调用此方法时,开发人员应指定邮件的索引。例如,以下代码行表示从收件箱下载最后一封邮件:

C#:

MailMessage msg = pop.DownloadEntireMessage(pop.InboxMessageCount);

VB.NET:
Dim msg As MailMessage =  pop.DownloadEntireMessage(pop.InboxMessageCount)

其中:

  • pop.InboxMessageCount是一个属性,包含邮箱中存储的邮件总数;
  • msg是一个MailMessage对象,表示单个电子邮件。

注意!如果邮箱中没有邮件,则pop.InboxMessageCount属性为0并调用pop.DownloadEntireMessage(pop.InboxMessageCount)方法将出现错误。

如果要从邮箱下载中下载新邮件,开发者必须定义特殊的帮助函数。该功能应该查找已经下载邮件的现有数据库中邮件的UID。如果没有找到指定的UID,则将该邮件视为新邮件。因此,开发人员必须使用数据库引擎来存储所有接收到的邮件UID。

最后,当邮箱完成所有必要的操作,并且与POP3服务器的连接无效时,开发人员应该调用POP3对象的Disconnect方法以断开与POP3服务器的连接,如下所示:

C#:

pop.Disconnect();

VB.NET:
pop.Disconnect()

示例代码:

以下示例从指定的邮箱中下载最新的邮件,并显示此邮件的正文。

在使用MailBee.NET Objects之前,请确保它已解锁。

C#:

using System;
using MailBee;
using MailBee.Pop3Mail;
using MailBee.Mime;

namespace EmailApp
{
    class Class1
    {
        [STAThread]

static bool IsNewMessage(string UID)
        {
            return true;
        }
        static void Main(string[] args)
        {
            Pop3 pop = new Pop3();

try
            {
                pop.Connect("mail.domain.com");
                pop.Login("login", "password");
                Console.WriteLine("Successfully logged in.");
            }
            catch(MailBeePop3LoginNegativeResponseException)
            {
                Console.WriteLine("POP3 server replied with a negative response at login.");
            }

string[] arrIDs = pop.GetMessageUids();
            int n = pop.InboxMessageCount;
            if (IsNewMessage(arrIDs[n])) 
            {
                MailMessage msg = pop.DownloadEntireMessage(n);

if (msg.BodyHtmlText != "") 
                     Console.WriteLine(msg.BodyHtmlText);
                else 
                    if (msg.BodyPlainText != "") 
                      Console.WriteLine(msg.BodyPlainText);
                    else 
                      Console.WriteLine("The body of this message is empty.");
            }

try
            {
                pop.Disconnect();
                Console.WriteLine("Disconnected successfully.");
            }

catch
            {
                Console.WriteLine("Disconnection failed.");
            }
        }
    }
}

VB.NET:
Imports System
Imports MailBee
Imports MailBee.Pop3Mail
Imports MailBee.Mime
 
Namespace EmailApp
    Class Class1
        _ 
 
        Shared Function IsNewMessage(ByVal UID As String) As Boolean
            Return True
        End Function
        Shared  Sub Main(ByVal args() As String)
            Dim pop As Pop3 =  New Pop3() 
 
            Try
                pop.Connect("mail.domain.com")
                pop.Login("login", "password")
                Console.WriteLine("Successfully logged in.")
            Catch
                Console.WriteLine("POP3 server replied with a negative response at login.")
            End Try
 
            Dim arrIDs() As String =  pop.GetMessageUids() 
            Dim n As Integer =  pop.InboxMessageCount 
            If IsNewMessage(arrIDs(n)) Then
                Dim msg As MailMessage =  pop.DownloadEntireMessage(n) 
 
                If msg.BodyHtmlText <> "" Then
                     Console.WriteLine(msg.BodyHtmlText)
                Else 
                  If msg.BodyPlainText <> "" Then
                    Console.WriteLine(msg.BodyPlainText)
                  Else 
                    Console.WriteLine("The body of this message is empty.")
                  End If
                End If
            End If
 
            Try
                pop.Disconnect()
                Console.WriteLine("Disconnected successfully.")
            Catch
                Console.WriteLine("Disconnection failed.")
            End Try
        End Sub
    End Class
End Namespace

以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

转载于:https://my.oschina.net/u/3279502/blog/967693

MailBee.NET Objects接收电子邮件(POP3)教程一:接收简单的电子邮件相关推荐

  1. 处理电子邮件的.NET控件MailBee.NET Objects免费下载及使用说明

    原文来自龙博方案网http://www.fanganwang.com/product/1283转载请注明出处 MailBee.NET Objects 是一款为创建.发送.接收以及处理电子邮件而设计的健 ...

  2. MailBee.NET Objects发送电子邮件(SMTP)教程六:创建并发送带有附件的邮件

    2019独角兽企业重金招聘Python工程师标准>>> MailBee.NET Objects是一款为创建.发送.接收以及处理电子邮件而设计的健壮.功能丰富的.NET控件.几行代码便 ...

  3. MailBee.NET Objects发送电子邮件(SMTP)教程五:发送带有嵌入图片的网页和HTML邮件

    MailBee.NET Objects介绍和试用点击查看>>> 为了发送带有嵌入对象的电子邮件,开发人员应该使用SMTP object.首先,开发人员应该按照[MailBee.NET ...

  4. MailBee.NET Objects撰写邮件教程(一):添加和删除自定义标题

    MailBee.NET Objects是一款为创建.发送.接收以及处理电子邮件而设计的健壮.功能丰富的.NET控件.几行代码便可为应用程序添加E-Mail支持,简单高效.具备"必需" ...

  5. 人工智能之配置环境教程一:安装VsCode和Anaconda

    人工智能之配置环境教程一:安装VsCode和Anaconda 作者介绍 一. 安装VScode编辑器 二. 安装Anaconda 作者介绍 孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生, ...

  6. 大学英语综合教程一 Unit1至Unit8 课文内容英译中 中英翻译

    大学英语综合教程一 Unit1至Unit8 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的 ...

  7. AUTOCAD自学教程一

    AUTOCAD自学教程一 AUTOCAD自学教程 在学习任何一款软件的时候,第一步也是非常必要的一步就是如何的安装软件. 下面我们讲解如何的安装这个软件. 1.安装autocad 2.安装产品 3.正 ...

  8. Python学习笔记:电子邮件,POP3收取邮件

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. pytorch打印模型参数_Pytorch网络压缩系列教程一:Prune你的模型

    Pytorch网络压缩系列教程一:Prune你的模型 本文由林大佬原创,转载请注明出处,来自腾讯.阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480 深度学习模型取得了前所未 ...

最新文章

  1. JavaWeb002-servlet基础
  2. 报班学python到底怎么样-学Python真的能让你找到出路吗?
  3. Context类(上下文)
  4. java condition_(原创)Java的ReentrantLock(可重入锁)下的Condition
  5. 一个数据仓库时代开始--Hive
  6. Netty中的那些坑
  7. 分享一下cookies操作(增、删、改、查)小经验
  8. c++ string类的常用方法_【常用类方法】Object
  9. AI又被彩虹吹?!新浪财经:应届博士算法毕业,80万年薪被疯抢
  10. dell笔记本外接显示器_使用笔记本电脑外接大屏幕液晶显示器的体验
  11. mysql创建的是拉丁_mysql 拉丁1 转换成 utf8
  12. 四:Jquery-animate
  13. Trick (六)——随机图的构造
  14. 背景差分检测物体,背景白点去除
  15. 修改echarts 3D柱状图柱子大小(粗细)的方法
  16. kali xss漏洞扫描工具使用教程
  17. React中用aliplayer-react封装播放组件
  18. JAVA获取CKplayer真是地址_[Java教程]使用CKplayer插件在网页中嵌入视频的方法(常用笔记2)...
  19. PyTorch 使用 TensorBoard 中的 writer.add_scalar 与 writer.add_scalars 的区别
  20. 高盛发布VR/AR研究报告

热门文章

  1. golang中,new和make的区别
  2. CSS分别设置Input样式(按input类型
  3. 单链表实现反转的三种方法
  4. Eureka覆盖状态
  5. 《Redis入门指南》第2版 读书笔记
  6. Zabbix分布式监控(zabbix-proxy)的配置关键点
  7. unity+百度定位
  8. Thinkphp3.2整合微信支付
  9. 程序猿爆笑选集(1)
  10. MySQL建立的索引看_MYSQL索引问题:索引在查询中如何使用?看了很多资料都只说索引的建立。是否建立了就不用再理会?...