• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Interview help

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    Interview help

    Just found out, one of the interview questions will be "How would you trawl exchange server email boxes from C#"

    Firstly I'm thinking windows service. I wrote something similar donkeys ago (in C++ I think)

    Back in those days we used good ole CDO (Collaboration Data Objects) to do the bizzo. Times they have a changed.

    What do the panel now use? Secure web services? Still CDO through interop?

    Be quick I have to leave soon!!
    Knock first as I might be balancing my chakras.

    #2
    Not done this myself but - any good to you? Depends on versions of .NET framework/Exchange of course

    http://social.technet.microsoft.com/...a-81eb91fa978f
    +50 Xeno Geek Points
    Come back Toolpusher, scotspine, Voodooflux. Pogle
    As for the rest of you - DILLIGAF

    Purveyor of fine quality smut since 2005

    CUK Olympic University Challenge Champions 2010/2012

    Comment


      #3
      No idea, but these days doesn't Exchange use SQL Server in some way?
      "take me to your leader"

      Comment


        #4
        Don't think SQL Server uses exchange but they can talk to each other.

        SY01 will just have to ask loads of questions.
        +50 Xeno Geek Points
        Come back Toolpusher, scotspine, Voodooflux. Pogle
        As for the rest of you - DILLIGAF

        Purveyor of fine quality smut since 2005

        CUK Olympic University Challenge Champions 2010/2012

        Comment


          #5
          Originally posted by suityou01 View Post
          Just found out, one of the interview questions will be "How would you trawl exchange server email boxes from C#"
          FFS, what sort of question is that?

          My response would be, "I'd google it and do it the same way that anyone else had found out and posted on the net".
          How did this happen? Who's to blame? Well certainly there are those more responsible than others, and they will be held accountable, but again truth be told, if you're looking for the guilty, you need only look into a mirror.

          Follow me on Twitter - LinkedIn Profile - The HAB blog - New Blog: Mad Cameron
          Xeno points: +5 - Asperger rating: 36 - Paranoid Schizophrenic rating: 44%

          "We hang the petty thieves and appoint the great ones to high office" - Aesop

          Comment


            #6
            Originally posted by HairyArsedBloke View Post
            FFS, what sort of question is that?

            My response would be, "I'd google it and do it the same way that anyone else had found out and posted on the net".
            It might be one of those deliberately horrible questions you get sometimes where you have to waffle about different versions of software. OK do you mean SQL server 7, 2000, 2005? And still get it wrong
            +50 Xeno Geek Points
            Come back Toolpusher, scotspine, Voodooflux. Pogle
            As for the rest of you - DILLIGAF

            Purveyor of fine quality smut since 2005

            CUK Olympic University Challenge Champions 2010/2012

            Comment


              #7
              It might be one of those questions where they get free consultancy and you don't get a job...
              "Never argue with stupid people, they will drag you down to their level and beat you with experience". Mark Twain

              Comment


                #8
                I'd google for this:

                Code:
                using System;
                using System.Net;
                using System.IO;
                using System.Text;
                using System.Xml;
                
                namespace ExchangeSDK.Snippets.CSharp
                {
                class SearchingFoldersWebDAVUnread
                {
                  [STAThread]
                  static void Main(string[] args)
                  {
                   // Variables.
                   System.Net.HttpWebRequest Request;
                   System.Net.WebResponse Response;
                   System.Net.CredentialCache MyCredentialCache;
                   string strInboxURI = "http://Servername/exchange/mailbox/inbox";
                   string strUserName = "username";
                   string strPassword = "password";
                   string strDomain = "domain";
                   string strQuery ="";
                   byte[] bytes = null;
                   System.IO.Stream RequestStream = null;
                   System.IO.Stream ResponseStream = null;
                   XmlDocument ResponseXmlDoc = null;
                   XmlNodeList DisplayNameNodes = null;
                
                   try
                   {
                    // Build the SQL query.
                    strQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" 
                >"
                     + "<D:sql>SELECT \"DAV:displayname\" FROM \"" + strInboxURI + "\""
                     + "WHERE \"DAV:ishidden\" = false AND \"DAV:isfolder\" = false"
                     + " AND \"urn:schemas:httpmail:read\" = 
                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(strInboxURI),
                     "NTLM",
                     new System.Net.NetworkCredential(strUserName, strPassword, strDomain)
                     );
                
                    // Create the HttpWebRequest object.
                    Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strInboxURI);
                
                    // 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);
                
                    // Build a list of the DAV:href XML nodes, corresponding to the folders
                    // in the mailbox.  The DAV: namespace is typically assgigned the a:
                    // prefix in the XML response body.
                    DisplayNameNodes = ResponseXmlDoc.GetElementsByTagName("a:displayname");
                    Console.WriteLine("Number of Unread Messages:" + 
                DisplayNameNodes.Count);
                
                
                    // Clean up.
                    ResponseStream.Close();
                    Response.Close();
                
                   }
                   catch(Exception ex)
                   {
                    // Catch any exceptions. Any error codes from the SEARCH
                    // method request on the server will be caught here, also.
                    Console.WriteLine(ex.Message);
                   }
                  }
                }
                }
                It uses WebDAV, apparently

                Comment

                Working...
                X