zoukankan      html  css  js  c++  java
  • 调用Exchange收发邮件(无组件收发)

    发送邮件代码如下:

    Code

    获取新邮件代码:

    private void GetUnReadMailCount()
            {
                System.Net.HttpWebRequest Request;
                System.Net.WebResponse Response;
                System.Net.CredentialCache MyCredentialCache;
                
    string strRootURI = "http://191.0.0.111/exchange/administrator";
                
    string strUserName = "administrator";
                
    string strPassword = "afineday";
                
    string strDomain = "oa.lgyw";
                
    string strQuery ="";
                
    byte[] bytes = null;
                System.IO.Stream RequestStream 
    = null;
                System.IO.Stream ResponseStream 
    = null;
                XmlDocument ResponseXmlDoc 
    = null;
                XmlNodeList HrefNodes
    = null;
                XmlNodeList SizeNodes
    = null;

                
    try
                {
                    
    // Build the SQL query.
                    strQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" >"
                        
    + "<D:sql>SELECT \"DAV:displayname\",\"urn:schemas:httpmail:unreadcount\" FROM \"" + strRootURI + "\""
                        
    //    +"where \"DAV:contentclass\"=\"urn:schemas:httpmail:read \""            
                        
    //        + "WHERE \"DAV:ishidden\" = false AND \"DAV:isfolder\" = false"
                        + "</D:sql></D:searchrequest>";

                    
    // Create a new CredentialCache object and fill it with the network
                    
    // credentials required to access the server.
                    MyCredentialCache = new System.Net.CredentialCache();
                    MyCredentialCache.Add( 
    new System.Uri(strRootURI),
                        
    "NTLM",
                        
    new System.Net.NetworkCredential(strUserName, strPassword, strDomain)
                        );

                    
    // Create the HttpWebRequest object.
                    Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);

                    
    // Add the network credentials to the request.
                    Request.Credentials = MyCredentialCache;

                    
    // Specify the method.
                    Request.Method = "SEARCH";

                    
    // Encode the body using UTF-8.
                    bytes = Encoding.UTF8.GetBytes((string)strQuery);

                    
    // Set the content header length.  This must be
                    
    // done before writing data to the request stream.
                    Request.ContentLength = bytes.Length;

                    
    // Get a reference to the request stream.
                    RequestStream = Request.GetRequestStream();

                    
    // Write the SQL query to the request stream.
                    RequestStream.Write(bytes, 0, bytes.Length);

                    
    // Close the Stream object to release the connection
                    
    // for further use.
                    RequestStream.Close();

                    
    // Set the content type header.
                    Request.ContentType = "text/xml";

                    
    // Send the SEARCH method request and get the
                    
    // response from the server.
                    Response = (HttpWebResponse)Request.GetResponse();
            
                    
    // Get the XML response stream.
                    ResponseStream = Response.GetResponseStream();
                
                    
    // Create the XmlDocument object from the XML response stream.
                    ResponseXmlDoc = new XmlDocument();
                    ResponseXmlDoc.Load(ResponseStream);
                    HrefNodes 
    = ResponseXmlDoc.GetElementsByTagName("a:displayname");
                    SizeNodes 
    = ResponseXmlDoc.GetElementsByTagName("d:unreadcount");
                    
    for(int i=0;i<HrefNodes.Count;i++)
                    {
                        
    if(HrefNodes[i].InnerText=="收件箱")
                            
    this.LMail.Text="您有"+SizeNodes[i].InnerText+"封新邮件!";
                    }
                    ResponseStream.Close();
                    Response.Close();
                }
                
    catch(Exception)
                {
                    
    // Catch any exceptions. Any error codes from the SEARCH
                    
    // method request on the server will be caught here, also.
                    this.LMail.Text="没有找到您的邮箱";
                }

                
            }
  • 相关阅读:
    oracle 聚合函数 LISTAGG ,将多行结果合并成一行
    oracle 数据库对于多列求最大值
    Java 简单的rpc 一
    centos7 安装php7
    win10下VM 中centos 安装共享文件
    CentOS7 cannot find a valid baseurl for repo base
    分布式事务
    利用虚拟映射文件加密大文件
    动态代理
    c++ 11 lambda表达式
  • 原文地址:https://www.cnblogs.com/wudingfeng/p/1298522.html
Copyright © 2011-2022 走看看