千家信息网

C#如何实现收发邮件功能

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇"C#如何实现收发邮件功能"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C#如何
千家信息网最后更新 2025年02月24日C#如何实现收发邮件功能

这篇"C#如何实现收发邮件功能"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C#如何实现收发邮件功能"文章吧。

一、服务端

    TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 13000);//定义监听器    server.Start();//启动监听器    byte[] buffer = new byte[1024]; //创建一个容器用于接受数据    string data = null;    while (true)    {        //等待客户端连接过来        TcpClient client = server.AcceptTcpClient();        //Task task1 = server.AcceptTcpClientAsync();        //Socket socket = server.AcceptSocket();        //Task task2 = server.AcceptSocketAsync();        //server.Pending();        //取得客户端发送过来的数据         int len = client.Available;//获取已经从网络流接收且可供读取的数据量        NetworkStream nstream = client.GetStream(); //返回一个可供读写的网络流        int bytesRead;        do        {            bytesRead = nstream.Read(buffer, 0, buffer.Length); //接收消息            data = Encoding.UTF8.GetString(buffer, 0, bytesRead); //先将接收到的数据转化可输出的字符串类型            Console.WriteLine("收到消息:" + data); 输出收到的信息            byte[] msg = Encoding.UTF8.GetBytes(data.ToUpper());            nstream.Write(buffer, 0, buffer.Length);//发送消息        } while (bytesRead > 0);        nstream.Close(); //1.先释放流的数据        client.Close(); //2.再释放客户端的连接数据    }    server.Stop(); //3.关闭监听

二、客户端

    TcpClient client = new TcpClient("127.0.0.1", 13000);//连接服务器    //或者    //    TcpClient client=new TcpClient();    //    client.Connect("127.0.0.1", 13000);    NetworkStream nstream = client.GetStream();    //---其他同服务端    nstream.Close(); //1.先释放流的数据    client.Close(); //2.再释放客户端的连接数据

三、发送邮件

1、使用MailMessage和SmtpClient发送邮件。

在Wince中,可以使用OpenNetCF.Net.Mail类发送邮件。

    MailMessage mailMessage = new MailMessage    {        //发件人        From = new MailAddress("***@163.com", "您的朋友", Encoding.UTF8),        Priority = MailPriority.High,        //邮件主题        SubjectEncoding = Encoding.UTF8,        Subject = "Hello",    };    //收件人 可以添加多个收件人    mailMessage.To.Add(new MailAddress("137***126@qq.com"));    //mailMessage.CC 获取包含此电子邮件的抄送(CC)收件人的地址集合    //邮件正文                mailMessage.IsBodyHtml = true;//如果要发送html格式的消息,需要设置这个属性    mailMessage.BodyEncoding = Encoding.UTF8;    mailMessage.Body = "

邮件测试

"; //邮件内容即消息正文中中显示图片 ,需要为图片指明src='cid:idname(资源id)' AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("", null, "text/html"); //然后在LinkedResource加入文件的绝对地址,和ContentType 例如image/gif,text/html...与http请求的响应报文中的ContentType一致 LinkedResource lr = new LinkedResource("1.gif", "image/gif"); //绑定上文中指定的idname lr.ContentId = "zfp"; //添加链接资源 htmlBody.LinkedResources.Add(lr); mailMessage.AlternateViews.Add(htmlBody); //发送附件 指明附件的绝对地址 Attachment attachment = new Attachment("1.txt"); mailMessage.Attachments.Add(attachment); //创建邮件发送客户端 SmtpClient sendClient = new SmtpClient("smtp.qq.com", 25) { //指定邮箱账号和密码 Credentials = new NetworkCredential(fromMail, "xmxyldrmtvnrddfe") }; //指定如何发送电子邮件 sendClient.DeliveryMethod = SmtpDeliveryMethod.Network; //指定使用使用安全套接字ssl加密的链接 sendClient.EnableSsl = true; sendClient.Send(mailMessage); //或者可以一步发送 sendClient.SendAsync(mailMessage, null);

2、利用TcpClient类收取pop3邮件

    TcpClient client = new TcpClient("mail.**.com", 443);    //连接    NetworkStream ns = client.GetStream();    StreamReader sr = new StreamReader(ns, Encoding.Default);    string result = sr.ReadLine(); //返回OK或ER    //登陆    StreamWriter sw = new StreamWriter(ns);    sw.WriteLine("user  b**");    sw.Flush();    result = sr.ReadLine();    sw.WriteLine("pass  **");    sw.Flush();    result = sr.ReadLine();    //获取邮件数量    sw.WriteLine("stat");    sw.Flush();    result = sr.ReadLine();//result.split(' ')[1]表示邮件数量    //获取邮件信息    sw.WriteLine("top 1 0 ");    sw.Flush();    result = sr.ReadLine();    while (true)    {        result = sr.ReadLine();        if (result == ".") break;        if (result.Length > 4 && result.Substring(0, 8) == "Subject:")        {            //result为标题,乱码用Base64解码            Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(result));        }    }

以上就是关于"C#如何实现收发邮件功能"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

邮件 数据 内容 客户 消息 客户端 功能 C# 地址 收件人 服务 监听 信息 图片 数量 文章 正文 电子 电子邮件 监听器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏服务器续保费用 企业行政网络安全态势感知 软件开发需要哪些资质证书 pve 数据库虚拟机 软件开发属于电子与智能化范围吗 河南高校党建软件开发系统 杭州前端软件开发靠谱吗 天地劫安卓手机和平板服务器 魔兽世界服务器2016 计算机网络技术是哪方面 怎么查看服务器是否有数据库 文专学计算机网络技术 常德网络安全宣传周 数据库按时间分类 宝山区自主可控网络技术售后保障 我的世界服务器域名 两个数据库相互调用 为单位网络安全营造 安装嘉华社区宝app服务器 数据库中数字的表示方法 王者荣耀 哪个服务器 数据库添加列计算列 labwiew数据库 无线打印服务器支持哪些打印机 计算机硬件及网络技术 win10 建立本地数据库 怀柔区什么网络技术口碑推荐 服务器可以放在办公室里吗 两个数据库相互调用 江宁区智能化软件开发排名靠前
0