千家信息网

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

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇"C#如何实现收发邮件功能"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C#如何
千家信息网最后更新 2025年11月07日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#如何实现收发邮件功能"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0