• C# 收邮件


    C#没有内置收邮件的类,参考网络上的代码,针对POP3协议服务器使用 Jmail组件来收邮件,针对IMAP协议服务器使用LumiSoft.Net 。

    另外,一般免费邮箱需要在邮箱设置中开启 POP3(或IMAP)、 SMTP服务才可以使用非浏览器客户端连接。在测试以下代码之前,确保已经开启以上服务。

    在编写代码之前,需要先安装Jmail组件,然后再用 vS2008 的工具转化为可以引用的组件。以下是在网络上得到的做法:

    第一步:首先下载并安装最新版的Jmail。
    第二步:使用“Visual Studio 2008 命令提示”重新编译组件:在命令提示框中执行TlbImp.exe命令,tlbimp "jmail.dll所在目录"/jmail.dll /out:myJmail.dll /namespace:myJmail
    生成myJmail.dll
    把这个 myjmail.dll 放到项目中,然后添加对它的引用即可。

    下面是一个接收邮件的方法:

    public static bool 收邮件(string 用户名,string 密码,string 服务器)
    {
    myJmail.POP3 pop = new myJmail.POP3Class();
    pop.Connect(用户名, 密码,服务器 , 110);//连接服务器
    for (int i = 1; i < pop.Messages.Count; i++)
    {
    if (pop.DownloadSingleMessage(i).Subject == null) continue;
    try
    {//以下这些属性用于检索接收到的邮件的信息
    // pop.DownloadSingleMessage(i).Subject.ToString() //主题
    // pop.DownloadSingleMessage(i).From.ToString() //发送邮件的人
    // pop.DownloadSingleMessage(i).Date.ToString();//发送邮件的时间
    //其他信息……
    }
    catch (Exception ex)
    {
    //ex.Message;
    }

    }
    pop.Disconnect();//释放连接
    return true;
    }

    比如,163免费邮箱的用户名如 user@163.com,POP3服务器为 pop3.163.com,
    新浪的为 pop3.sina.com,

    对于Gmail邮箱,不能使用上面的代码来接收邮件,因为其服务器并不是使用POP3协议接收邮件,而是用IMAP协议。

    第三方组件 LumiSoft.Net 已经有专门处理IMAP协议的类。所以下载 LumiSoft.Net 组件,添加对 LumiSoft.Net.dll 的引用,使用命名空间

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

    即可。

    public static bool Gmail收邮件(string 用户名, string 密码)
    {
    IMAP_Client 客户端 = new IMAP_Client();
    try
    {
    //连接邮件服务器通过传入邮件服务器地址和用于IMAP协议的端口号
    客户端.Connect("imap.gmail.com", 993, true);//接收邮件服务器必须为 993,且必须使用 SSL 加密。
    //登陆邮箱
    客户端.Login(用户名, 密码);

    //处理邮箱中的信息,例如:
    IMAP_r_u_List [] list=客户端.GetFolders (null);//文件夹列表
    foreach (IMAP_r_u_List l in list)
    {
    //l.ToString();
    }
    }
    catch (Exception ex)
    {
    //ex.Message;
    }
    finally
    {
    客户端.Disconnect();
    }
    return true;
    }

    联盟快卖 商人,生意人,待创业人士在此可以共赢互利 期待你的加入 群号:140809277
  • 相关阅读:
    lazarus自带的DBGrid隔行颜色交替的设置
    lazarus 获取硬件ID的函数,适用于linux和win
    解决linux每次重启系统后编写的cef4delphi程序都要解锁密钥环
    lazarus fpcupdeluxe版小工具(linux for aarch64)
    lazarus 模拟menubutton
    lazarus Ehlib的DBLookupComboboxEh控件在linux使用经验
    编译SQLite libsqlite3.so文件
    lazarus在linux arm64使用SQLite数据加密的方法
    lazarus 使用zeos ZQuery.filter注意事项
    从零开始配置 vim(9)——初始配置
  • 原文地址:https://www.cnblogs.com/yexinw/p/2387650.html
Copyright © 2020-2023  润新知