亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實(shí)現(xiàn)收發(fā)郵件功能

 更新時(shí)間:2022年05月13日 16:42:29   作者:springsnow  
這篇文章介紹了C#實(shí)現(xiàn)收發(fā)郵件功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、服務(wù)端

    TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 13000);//定義監(jiān)聽(tīng)器
    server.Start();//啟動(dòng)監(jiān)聽(tīng)器
    byte[] buffer = new byte[1024]; //創(chuàng)建一個(gè)容器用于接受數(shù)據(jù)
    string data = null;
    while (true)
    {
        //等待客戶端連接過(guò)來(lái)
        TcpClient client = server.AcceptTcpClient();

        //Task<TcpClient> task1 = server.AcceptTcpClientAsync();
        //Socket socket = server.AcceptSocket();
        //Task<Socket> task2 = server.AcceptSocketAsync();
        //server.Pending();

        //取得客戶端發(fā)送過(guò)來(lái)的數(shù)據(jù) 
        int len = client.Available;//獲取已經(jīng)從網(wǎng)絡(luò)流接收且可供讀取的數(shù)據(jù)量
        NetworkStream nstream = client.GetStream(); //返回一個(gè)可供讀寫(xiě)的網(wǎng)絡(luò)流
        int bytesRead;
        do
        {
            bytesRead = nstream.Read(buffer, 0, buffer.Length); //接收消息
            data = Encoding.UTF8.GetString(buffer, 0, bytesRead); //先將接收到的數(shù)據(jù)轉(zhuǎn)化可輸出的字符串類(lèi)型
            Console.WriteLine("收到消息:" + data); 輸出收到的信息
            byte[] msg = Encoding.UTF8.GetBytes(data.ToUpper());
            nstream.Write(buffer, 0, buffer.Length);//發(fā)送消息
        } while (bytesRead > 0);
        nstream.Close(); //1.先釋放流的數(shù)據(jù)
        client.Close(); //2.再釋放客戶端的連接數(shù)據(jù)
    }
    server.Stop(); //3.關(guān)閉監(jiān)聽(tīng)

二、客戶端

    TcpClient client = new TcpClient("127.0.0.1", 13000);//連接服務(wù)器
    //或者
    //    TcpClient client=new TcpClient();
    //    client.Connect("127.0.0.1", 13000);
    NetworkStream nstream = client.GetStream();
    //---其他同服務(wù)端
    nstream.Close(); //1.先釋放流的數(shù)據(jù)
    client.Close(); //2.再釋放客戶端的連接數(shù)據(jù)

三、發(fā)送郵件

1、使用MailMessage和SmtpClient發(fā)送郵件。

在Wince中,可以使用OpenNetCF.Net.Mail類(lèi)發(fā)送郵件。

    MailMessage mailMessage = new MailMessage
    {
        //發(fā)件人
        From = new MailAddress("***@163.com", "您的朋友", Encoding.UTF8),
        Priority = MailPriority.High,
        //郵件主題
        SubjectEncoding = Encoding.UTF8,
        Subject = "Hello",
    };

    //收件人 可以添加多個(gè)收件人
    mailMessage.To.Add(new MailAddress("137***126@qq.com"));

    //mailMessage.CC 獲取包含此電子郵件的抄送(CC)收件人的地址集合

    //郵件正文            
    mailMessage.IsBodyHtml = true;//如果要發(fā)送html格式的消息,需要設(shè)置這個(gè)屬性
    mailMessage.BodyEncoding = Encoding.UTF8;
    mailMessage.Body = "<p style='color:red;font-size:14px;'>郵件測(cè)試</p>";

    //郵件內(nèi)容即消息正文中中顯示圖片 ,需要為圖片指明src='cid:idname(資源id)'
    AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("<img src='cid:zfp'/>", null, "text/html");
    //然后在LinkedResource加入文件的絕對(duì)地址,和ContentType 例如image/gif,text/html...與http請(qǐng)求的響應(yīng)報(bào)文中的ContentType一致
    LinkedResource lr = new LinkedResource("1.gif", "image/gif");
    //綁定上文中指定的idname
    lr.ContentId = "zfp";
    //添加鏈接資源
    htmlBody.LinkedResources.Add(lr);
    mailMessage.AlternateViews.Add(htmlBody);

    //發(fā)送附件 指明附件的絕對(duì)地址
    Attachment attachment = new Attachment("1.txt");
    mailMessage.Attachments.Add(attachment);

    //創(chuàng)建郵件發(fā)送客戶端
    SmtpClient sendClient = new SmtpClient("smtp.qq.com", 25)
    {
        //指定郵箱賬號(hào)和密碼
        Credentials = new NetworkCredential(fromMail, "xmxyldrmtvnrddfe")
    };

    //指定如何發(fā)送電子郵件
    sendClient.DeliveryMethod = SmtpDeliveryMethod.Network;

    //指定使用使用安全套接字ssl加密的鏈接
    sendClient.EnableSsl = true;
    sendClient.Send(mailMessage);
    //或者可以一步發(fā)送
    sendClient.SendAsync(mailMessage, null);

 2、利用TcpClient類(lèi)收取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();
    //獲取郵件數(shù)量
    sw.WriteLine("stat");
    sw.Flush();
    result = sr.ReadLine();//result.split(' ')[1]表示郵件數(shù)量

    //獲取郵件信息
    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為標(biāo)題,亂碼用Base64解碼
            Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(result));
        }
    }

到此這篇關(guān)于C#實(shí)現(xiàn)收發(fā)郵件功能的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何使用C#修改本地Windows系統(tǒng)時(shí)間

    如何使用C#修改本地Windows系統(tǒng)時(shí)間

    這篇文章主要介紹了如何使用C#修改本地Windows系統(tǒng)時(shí)間,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C# Winform選項(xiàng)卡集成窗體詳解

    C# Winform選項(xiàng)卡集成窗體詳解

    這篇文章主要為大家詳細(xì)介紹了C# Winform選項(xiàng)卡集成窗體詳解的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • c#文件的I/O基本操作

    c#文件的I/O基本操作

    System.IO命名空間包含允許在數(shù)據(jù)流和文件上進(jìn)行同步,異步及寫(xiě)入的類(lèi)型,下面是關(guān)于c#文件的I/O基本操作講解,需要的朋友可以參考下
    2014-03-03
  • C#泛型設(shè)計(jì)需要注意的一個(gè)小陷阱

    C#泛型設(shè)計(jì)需要注意的一個(gè)小陷阱

    這篇文章主要給大家介紹了關(guān)于C#泛型設(shè)計(jì)需要注意的一個(gè)小陷阱,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • c#菜單動(dòng)態(tài)合并的實(shí)現(xiàn)方法

    c#菜單動(dòng)態(tài)合并的實(shí)現(xiàn)方法

    這篇文章主要介紹了c#菜單動(dòng)態(tài)合并的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • c# WPF中的TreeView使用詳解

    c# WPF中的TreeView使用詳解

    這篇文章主要介紹了c# WPF中的TreeView使用詳解,幫助大家更好的理解和學(xué)習(xí)使用c#技術(shù),感興趣的朋友可以了解下
    2021-03-03
  • C#實(shí)現(xiàn)猜數(shù)字小游戲

    C#實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 使用C#實(shí)現(xiàn)在word中插入頁(yè)眉頁(yè)腳的方法

    使用C#實(shí)現(xiàn)在word中插入頁(yè)眉頁(yè)腳的方法

    這篇文章主要介紹了使用C#實(shí)現(xiàn)在word中插入頁(yè)眉頁(yè)腳的方法,是操作Word的常見(jiàn)方法,有一定的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C#實(shí)現(xiàn)AddRange為數(shù)組添加多個(gè)元素的方法

    C#實(shí)現(xiàn)AddRange為數(shù)組添加多個(gè)元素的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)AddRange為數(shù)組添加多個(gè)元素的方法,實(shí)例分析了AddRange方法的使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#實(shí)現(xiàn)XML序列化與反序列化

    C#實(shí)現(xiàn)XML序列化與反序列化

    這篇文章介紹了C#實(shí)現(xiàn)XML序列化與反序列化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論