Ê×Ò³ | Óʼþ×ÊѶ | ¼¼Êõ½Ì³Ì | ½â¾ö·½°¸ | ²úÆ·ÆÀ²â | ÓʼþÈ˲Š| Óʼþ²©¿Í | ÓʼþϵͳÂÛ̳ | Èí¼þÏÂÔØ | ÓʼþÖÜ¿¯ | ÈȵãרÌâ | ¹¤¾ß
ÍøÂç¼¼Êõ | ²Ù×÷ϵͳ | Óʼþϵͳ | ¿Í»§¶Ë | µç×ÓÓÊÏä | ·´À¬»øÓʼþ | Óʼþ°²È« | ÓʼþÓªÏú | ÒÆ¶¯µçÓÊ | ÓʼþÈí¼þÏÂÔØ | µç×ÓÊéÏÂÔØ

Óʼþ·þÎñÆ÷

¼¼ÊõÇ°ÑØ | Exchange | Domino | Sendmail | Postfix | Qmail | IMail | MDaemon | Foxmail | James | Kerio | JavaMail | WinMail | Winwebmail | Merak | CMailServer | ½ðµÑ | ÆäËü | ÓʼþÓ뿪·¢ |
Ê×Ò³ > Óʼþ·þÎñÆ÷ > ÓʼþÓë³ÌÐò¿ª·¢ > ÓÃC#·ÃÎÊHotmail > ÕýÎÄ

ÓÃC#·ÃÎÊHotmail

³ö´¦£ºÏÉÈËÕÆ¹¤×÷ÊÒ ×÷ÕߣºÏÉÈËÕÆ¹¤×÷ÊÒ Ê±¼ä£º2005-9-13 8:52:00
POPÓʼþЭÒéµÄÓŵãÔÚÓÚËüÊÇÒ»¸ö¿ª·ÅµÄ±ê×¼£¬ÓÐ×ÅÍêÉÆµÄÎĵµ£¬Õâ¾ÍʹµÃ±àдPOPÓʼþ¿Í»§³ÌÐò²»ÄÇôÀ§ÄÑ£¬Ö»ÒªÕÆÎÕÁËPOP¡¢SMTPµÄ»ù´¡ÖªÊ¶£¬¾Í¿ÉÒÔд³ö´úÀí³ÌÐòÀ´Ö´Ðи÷ÖÖÈÎÎñ£¬ÀýÈç¹ýÂË¹ã¸æºÍÀ¬»øÓʼþ£¬»òÌṩe-mail×Ô¶¯Ó¦´ð·þÎñ¡£

¡¡¡¡HotmailÊÇÊÀ½çÉÏÓ°Ïì×î¹ãµÄWebÓʼþϵͳ£¬Òź¶µÄÊÇ£¬µ±ÎÒÃÇҪΪHotmail±àд¶ÀÁ¢µÄ¿Í»§³ÌÐò£¨²»Í¨¹ýä¯ÀÀÆ÷·ÃÎʵĿͻ§³ÌÐò£©Ê±£¬ÂíÉϾͻáÓöµ½Hotmail²»ÌṩPOPÍø¹ØÕâÒ»Õϰ­¡£

¡¡¡¡ËäÈ»Hotmail²»ÌṩPOPÖ§³Ö£¬µ«ä¯ÀÀÆ÷²¢·Ç·ÃÎÊHotmailµÄΨһ;¾¶¡£ÀýÈ磬ÀûÓÃOutlook Express¿ÉÒÔÖ±½ÓÁ¬½Óµ½±ê×¼µÄHotmail»òMSNÐÅÏ䣬ÌáÈ¡¡¢É¾³ý¡¢Òƶ¯»ò·¢ËÍÓʼþ¡£ÀûÓÃHTTP°ü¼àÊÓÆ÷£¬ÎÒÃÇ¿ÉÒÔ¼àÊÓµ½Outlook ExpressºÍHotmailµÄͨÐŹý³Ì£¬·ÖÎö³ö¿Í»§³ÌÐòÈçºÎÁ¬½Óµ½HotmailÐÅÏä¡£

¡¡¡¡Outlook ExpressÀûÓÃÁËÒ»ÖÖͨ³£³ÆÎªHTTPMailµÄδ¹«¿ªµÄЭÒ飬½èÖúÒ»×éHTTP/1.1À©Õ¹·ÃÎÊHotmail¡£±¾ÎĽ«½éÉÜHTTPMailµÄÒ»Ð©ÌØµãÒÔ¼°ÀûÓÃC#¿Í»§³ÌÐò·ÃÎÊHotmailµÄ¹ý³Ì¡£±¾ÎĵÄʾÀý³ÌÐòÀûÓÃCOM»¥²Ù×÷½«XMLHTTPÓÃ×÷Ò»ÖÖ´«Êä·þÎñ¡£XMLHTTP×é¼þÌṩÁËÒ»¸öÍêÉÆµÄHTTPʵÏÖ£¬³ýÁ˰üÀ¨ÈÏÖ¤¹¦ÄÜ£¬»¹Äܹ»ÔÚ·¢ËÍHTTPÇëÇó¸ø·þÎñÆ÷֮ǰÉèÖö¨ÖƵÄHTTPÍ·¡£

¡¡¡¡Ò»¡¢Á¬½ÓHTTPMailÍø¹Ø

¡¡¡¡HotmailÐÅÏäĬÈϵÄHTTPMailÍø¹ØÔÚhttp://services.msn.com/svcs/hotmail/httpmail.asp¡£HTTPMailЭÒéʵ¼ÊÉÏÊÇÒ»¸ö±ê×¼µÄWebDAV·þÎñ£¬Ö»²»¹ýÉÐδ¹«¿ª¶øÒÑ¡£ÔÚ±àдC#³ÌÐòʱ£¬ÎÒÃÇ¿ÉÒÔ·½±ãµØµ÷ÓÃ.NET¿ò¼ÜÔÚSystem.NetÃû³Æ¿Õ¼äÖÐÌṩµÄ¸÷¸öTCPºÍHTTPÀà¡£ÁíÍ⣬ÓÉÓÚÎÒÃÇÒª²Ù×÷WebDAV£¬ÔÚC#»·¾³ÏÂÀûÓÃXMLHTTPÁ¬½ÓHotmail×îΪ¼ò±ã£¬Ö»ÐèÒýÓÃÒ»ÏÂMSXML2×é¼þ¾Í¿ÉÒÔÖ±½Ó·ÃÎÊ¡£×¢ÒâÔÚ±¾ÎĵĴúÂëÆ¬¶ÏÖУ¬´øÓÐÏ»¬Ïߺó׺µÄ±äÁ¿ÊÇʾÀý´úÂëÖÐÉùÃ÷µÄ³ÉÔ±Óò£º

// »ñµÃÃû³Æ¿Õ¼ä
  using MSXML2;
  ...
  // ´´½¨¶ÔÏó
  xmlHttp_ = new XMLHTTP();



¡¡¡¡ÎªÁËÁ¬½Óµ½°²È«·þÎñÆ÷£¬WebDAVЭÒéÒªÇóÖ´ÐÐHTTP/1.1ÑéÖ¤¡£HTTPMail¿Í»§³ÌÐò·¢³öµÄµÚÒ»¸öÇëÇóÀûÓÃWebDAV PROPFIND·½·¨²éÕÒÒ»×éÊôÐÔ£¬ÆäÖаüÀ¨Hotmail¹ã¸æÌõµÄURLÒÔ¼°ÐÅÏäÎļþ¼ÐµÄλÖãº

<?xml version="1.0"?>
  <D:propfind xmlns:D="DAV:" xmlns:h="http://schemas.microsoft.com/hotmail/"
xmlns:hm="urn:schemas:httpmail:">
    <D:prop>
      <h:adbar/>
      <hm:contacts/>
      <hm:inbox/>
      <hm:outbox/>
      <hm:sendmsg/>
      <hm:sentitems/>
      <hm:deleteditems/>
      <hm:drafts/>
      <hm:msgfolderroot/>
      <h:maxpoll/>
      <h:sig/>
    </D:prop>
  </D:propfind>



¡¡¡¡Í¨¹ýXMLHTTP·¢Ë͵ÚÒ»¸öÇëÇóʱ£¬Ê×ÏÈÖ¸¶¨WebDAV·þÎñÆ÷URL£¬È»ºóÉú³ÉXMLÇëÇóµÄÄÚÈÝ£º

// Ö¸¶¨·þÎñÆ÷µÄURL
  string serverUrl = "http://services.msn.com/svcs/hotmail/httpmail.asp";
  // ¹¹Ôì²éѯ
  string folderQuery = null;
  folderQuery += "<?xml version='1.0'?><D:propfind xmlns:D='DAV:' ";
  folderQuery += "xmlns:h='http://schemas.microsoft.com/hotmail/' ";
  folderQuery += "xmlns:hm='urn:schemas:httpmail:'><D:prop><h:adbar/>";
  folderQuery += "<hm:contacts/><hm:inbox/><hm:outbox/><hm:sendmsg/>";
  folderQuery += "<hm:sentitems/><hm:deleteditems/><hm:drafts/>";
  folderQuery += "<hm:msgfolderroot/><h:maxpoll/><h:sig/></D:prop></D:propfind>";



¡¡¡¡XMLHTTP×é¼þÌṩÁËÒ»¸öopen()·½·¨À´½¨Á¢ÓëHTTP·þÎñÆ÷µÄÁ¬½Ó£º

void open(string method, string url, bool async, string user, string password);



¡¡¡¡open()·½·¨µÄµÚÒ»¸ö²ÎÊýÖ¸¶¨ÁËÓÃÀ´´ò¿ªÁ¬½ÓµÄHTTP·½·¨£¬ÀýÈçGET¡¢POST¡¢PUT»òPROPFIND£¬Í¨¹ýÕâЩHTTP·½·¨ÎÒÃÇ¿ÉÒÔÌáÈ¡Îļþ¼ÐÐÅÏ¢¡¢ÊÕ¼¯Óʼþ»ò·¢ËÍÐÂÓʼþ¡£ÎªÁ¬½Óµ½HotmailÍø¹Ø£¬ÎÒÃÇÖ¸¶¨ÓÃPROPFIND·½·¨À´²éѯÐÅÏä¡£×¢Òâopen()·½·¨ÔÊÐíÖ´ÐÐÒì²½µ÷Óã¨Ä¬ÈÏÆôÓã©£¬¶ÔÓÚ´øÍ¼ÐÎÓû§½çÃæµÄÓʼþ¿Í»§³ÌÐòÀ´Ëµ£¬Òì²½µ÷ÓÃÊÇ×îÀíÏëµÄµ÷Ó÷½Ê½¡£ÓÉÓÚ±¾ÎĵÄʾÀý³ÌÐòÊÇÒ»¸ö¿ØÖÆÌ¨Ó¦Óã¬ÎÒÃǰÑÕâ¸ö²ÎÊýÉèÖóÉfalse¡£

¡¡¡¡ÎªÁËÖ´ÐÐÉí·ÝÑéÖ¤£¬ÎÒÃÇÔÚopen()·½·¨ÖÐÖ¸¶¨ÁËÓû§Ãû×ÖºÍÃÜÂë¡£ÔÚʹÓÃXMLHTTP×é¼þʱ£¬Èç¹ûopen()·½·¨Ã»ÓÐÌṩÓû§Ãû×ÖºÍÃÜÂë²ÎÊý£¬µ«ÍøÕ¾ÒªÇóÖ´ÐÐÉí·ÝÑéÖ¤£¬XMLHTTP½«ÏÔʾ³öÒ»¸öµÇ¼´°¿Ú¡£ÎªÁË´ò¿ªÍ¨ÏòHotmailÍø¹ØµÄÁ¬½Ó£¬ÎÒÃǰÑPROPFINDÇëÇóµÄÍ·ÉèÖóÉXML²éѯµÄÄÚÈÝ£¬ÏûÏ¢µÄÕýÎı£³Ö¿Õ°×£¬È»ºó·¢ËÍÏûÏ¢£º

// ´ò¿ªÒ»¸öͨÏòHotmail·þÎñÆ÷µÄÁ¬½Ó
  xmlHttp_.open("PROPFIND", serverUrl, false, username, password);
  // ·¢ËÍÇëÇó
  xmlHttp_.setRequestHeader("PROPFIND", folderQuery);
  xmlHttp_.send(null);



¡¡¡¡¶þ¡¢·ÖÎöÐÅÏäµÄÎļþ¼ÐÁбí

¡¡¡¡·¢Ë͸øservices.msn.comµÄÇëÇóͨ³£Òª¾­Àú¼¸´ÎÖØ¶¨Ïò£¬¾­¹ý·þÎñÆ÷¶ËµÄ¸ºÔØÆ½ºâ´¦Àí£¬×îºóÇëÇó»á±»´«µÝµ½Ò»¸ö¿ÕÏеÄHotmail·þÎñÆ÷£¬²¢Ö´ÐÐÉí·ÝÑéÖ¤¡£ÔÚ¿Í»§¶Ë£¬Õâ¸öÖØ¶¨Ïò¡¢Ö´ÐÐÉí·ÝÑéÖ¤µÄ½»»¥¹ý³ÌÓÉXMLHTTP×é¼þ¸ºÔð´¦Àí¡£³É¹¦½¨Á¢Á¬½Óºó£¬·þÎñÆ÷»¹»áÒªÇóÉèÖÃһЩCookie¡¢ÑéÖ¤µ±Ç°»á»°µÄºÏ·¨ÐÔ£¬Õⲿ·Ö¹¤×÷ͬÑùÒ²ÓÉXMLHTTP×é¼þ×Ô¶¯´¦Àí¡£³õʼµÄÁ¬½ÓÇëÇó·¢³öÖ®ºó£¬·þÎñÆ÷½«·µ»ØÒ»¸öXML¸ñʽµÄÓ¦´ð£º

// »ñµÃÓ¦´ðµÄÄÚÈÝ
  string folderList = xmlHttp_.responseText;



¡¡¡¡·þÎñÆ÷·µ»ØµÄÓ¦´ð°üº¬Ðí¶àÓÐÓõÄÐÅÏ¢£¬ÆäÖаüÀ¨ÐÅÏäÖÐÎļþ¼ÐµÄURLλÖã¬ÏÂÃæÊÇÒ»¸öÀý×Ó£º

<?xml version="1.0" encoding="Windows-1252"?>
    <D:response>
      ...
      <D:propstat>
        <D:prop>
          <h:adbar>AdPane=Off*...</h:adbar>
          <hm:contacts>http://law15.oe.hotmail.com/...</hm:contacts>
          <hm:inbox>http://law15.oe.hotmail.com/...</hm:inbox>
          <hm:sendmsg>http://law15.oe.hotmail.com/...</hm:sendmsg>
          <hm:sentitems>http://law15.oe.hotmail.com/...</hm:sentitems>
          <hm:deleteditems>http://law15.oe.hotmail.com/...</hm:deleteditems>
          <hm:msgfolderroot>http://law15.oe.hotmail.com/...</hm:msgfolderroot>
          ...
       </D:prop>
     </D:response>
  </D:multistatus>



¡¡¡¡ÔÚ±¾ÎĵĿØÖÆÌ¨Ê¾Àý³ÌÐòÖУ¬ÎÒÃǸÐÐËȤµÄÁ½¸öÎļþ¼ÐÊÇÊÕ¼þÏäºÍ·¢¼þÏäµÄÎļþ¼Ð£¬ËüÃÇ·Ö±ðÓÃÓÚ½ÓÊպͷ¢ËÍÓʼþ¡£

¡¡¡¡ÔÚC#»·¾³ÖнâÎöXMLµÄ·½·¨ºÜ¶à£¬ÓÉÓÚÎÒÃǿ϶¨´úÂëÉæ¼°µÄËùÓÐXMLÎĵµ×ÜÊǺϷ¨µÄ£¬ËùÒÔ¿ÉÒÔÀûÓÃSystem.XML.XmlTextReaderËÙ¶È¿ìµÄÓÅÊÆ¡£XmlTextReaderÊÇÒ»¸ö¡°Ö»Ïòǰ¡±µÄ¶ÁÈ¡Æ÷£¬ÏÂÃæ°ÑXML×Ö·ûÊý¾Ýת»»³É×Ö·ûÁ÷£¬³õʼ»¯XML¶ÁÈ¡Æ÷£º

// ³õʼ»¯
  inboxUrl_ = null;
  sendUrl_ = null;
  // ×°ÈëXML
  StringReader reader = new StringReader(folderList);
  XmlTextReader xml = new XmlTextReader(reader);



¡¡¡¡±éÀú¸÷¸ö½Úµã£¬Ñ¡È¡³öhm:inboxºÍhm:sendmsg½Úµã£¬ÕâÁ½¸ö½Úµã·Ö±ð´ú±íÊÕ¼þÏäºÍ·¢¼þÏ䣺

// ¶ÁÈ¡XMLÊý¾Ý
  while(xml.Read())
  {
    // ÊÇÒ»¸öXMLÔªËØ£¿
    if(xml.NodeType == XmlNodeType.Element)
    {
      // »ñÈ¡¸Ã½Úµã
      string name = xml.Name;
      // ¸Ã½Úµã´ú±íÊÕ¼þÏ䣿
      if(name == "hm:inbox")
      {
        // ±£´æÊÕ¼þÏäURL
        xml.Read();
        inboxUrl_ = xml.Value;
      }
      // ¸Ã½Úµã´ú±í·¢¼þÏ䣿
      if(name == "hm:sendmsg")
      {
        // ±£´æ·¢¼þÏäURL
        xml.Read();
        sendUrl_ = xml.Value;
      }
    }
  }



¡¡¡¡Ö»ÓÐÏÈ»ñÈ¡µ±Ç°Õâ´Î»á»°µÄºÏ·¨µÄÊÕ¼þÏäºÍ·¢¼þÏäURL£¬²Å¿ÉÒÔ·¢ËͺͽÓÊÕÓʼþ¡£

¡¡¡¡Èý¡¢ÁоÙÎļþ¼ÐÄÚÈÝ

¡¡¡¡µÃµ½ÁËÐÅÏäÎļþ¼Ð£¨ÈçÊÕ¼þÏ䣩µÄURLÖ®ºó£¬¾Í¿ÉÒÔÏò¸ÃÎļþ¼ÐµÄURL·¢ËÍWebDAVÇëÇóÁÐ¾ÙÆäÄÚÈÝ¡£Ê¾Àý³ÌÐò¶¨ÒåÁËÒ»¸öÍйÜÀàÐÍMailItem£¬ÓÃÀ´±£´æÎļþ¼ÐÀïÒ»ÏîÄÚÈÝ£¨¼´Ò»¸öÓʼþ£©µÄÐÅÏ¢¡£Îļþ¼ÐÄÚÈÝÁоٴӳõʼ»¯Ò»¸öMailItemsÊý×鿪ʼ£º

// ³õʼ»¯
  ArrayList mailItems = new ArrayList();



¡¡¡¡Îª»ñµÃÓʼþÖ÷Ìâ¡¢ÊÕ¼þÈ˵ØÖ·¡¢·¢¼þÈ˵ØÖ·Ö®ÀàµÄÓʼþ»ù±¾ÐÅÏ¢£¬ÎÒÃÇÒªÓõ½ÏÂÃæXML¸ñʽµÄWebDAV²éѯ£º

<?xml version="1.0"?>
  <D:propfind xmlns:D="DAV:" xmlns:hm="urn:schemas:httpmail:" xmlns:m="
¡¡¡¡¡¡urn:schemas:mailheader:">
    <D:prop>
      <D:isfolder/>
      <hm:read/>
      <m:hasattachment/>
      <m:to/>
      <m:from/>
      <m:subject/>
      <m:date/>
      <D:getcontentlength/>
    </D:prop>
  </D:propfind>



¡¡¡¡Éú³ÉÉÏÊöXML²éѯ×Ö·û´®µÄC#´úÂ룺

// ¹¹Ôì²éѯ
  string getMailQuery = null;
  getMailQuery += "<?xml version='1.0'?><D:propfind xmlns:D='DAV:' ";
  getMailQuery += "xmlns:hm='urn:schemas:httpmail:' ";
  getMailQuery += "xmlns:m='urn:schemas:mailheader:'><D:prop><D:isfolder/>";
  getMailQuery += "<hm:read/><m:hasattachment/><m:to/><m:from/><m:subject/>";
  getMailQuery += "<m:date/><D:getcontentlength/></D:prop></D:propfind>";



¡¡¡¡¾ÍÏóÇ°Ãæ»ñÈ¡ÐÅÏäÎļþ¼ÐÇåµ¥µÄ·½Ê½Ò»Ñù£¬ÉÏÊöÇëÇóҲͨ¹ýXMLHTTPÓÃPROPFIND·½·¨·¢ËÍ£¬Õâ´ÎÎÒÃǰÑÇëÇóµÄÕýÎÄÉèÖóɲéѯ×Ö·û´®¡£ÓÉÓÚµ±Ç°»á»°µÄÓû§Éí·ÝÒѾ­Í¨¹ýÑéÖ¤£¬ËùÒÔXMLHTTP open()µ÷ÓÃÖв»±ØÔÙÌṩÓû§Ãû×ÖºÍÃÜÂ룺

// »ñÈ¡ÓʼþÐÅÏ¢
  xmlHttp_.open("PROPFIND", folderUrl, false, null, null);
  xmlHttp_.send(getMailQuery);
  string folderInfo = xmlHttp_.responseText;



¡¡¡¡Èç¹ûÇëÇó³É¹¦£¬·þÎñÆ÷·µ»ØµÄÓ¦´ðXMLÁ÷°üº¬Á˸ÃÎļþ¼ÐÖи÷¸öÓʼþµÄÐÅÏ¢£º

<D:multistatus>
    <D:response>
      <D:href>
        http://sea1.oe.hotmail.com/cgi-bin/hmdata/...
      </D:href>
      <D:propstat>
        <D:prop>
          <hm:read>1</hm:read>
          <m:to/>
          <m:from>Mark Anderson</m:from>
          <m:subject>RE: New Information</m:subject>
          <m:date>2002-08-06T16:38:39</m:date>
          <D:getcontentlength>1238</D:getcontentlength>
        </D:prop>
        <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
    </D:response>
    ...



¡¡¡¡¹Û²ì·þÎñÆ÷·µ»ØµÄÓ¦´ð£¬ÎÒÃÇ·¢ÏÖÿһ¸ö½Úµã°üº¬Ò»×é±êʶÓʼþµÄÓò£¬ÀýÈçͨ¹ý±ê¼Ç¿ÉÌáÈ¡³öÓʼþ¡£ÏÂÃæÎÒÃÇÔÙ´ÎʹÓÃSystem.XML.XmlTextReader½âÎöÕâ¸öXMLÊý¾ÝÁ÷£¬Ê×Ïȳõʼ»¯Á÷¶ÁÈ¡Æ÷£º

MailItem mailItem = null;

  // ×°ÈëXML
  StringReader reader = new StringReader(folderInfo);
  XmlTextReader xml = new XmlTextReader(reader);



¡¡¡¡ËÄ¡¢·ÖÎöÓʼþ»ù±¾ÐÅÏ¢

¡¡¡¡ÎªÁ˱éÀúÒ»´Î¾Í½âÎöºÃÕû¸öXMLÎĵµ£¬ÎÒÃÇÔÚÿ´Î´ò¿ªÔªËØÊ±¾Í´´½¨Ò»¸öеÄMailItemʵÀý£¬Ò»Óöµ½±ê¼ÇµÄĩβ¾Í±£´æ¸ÃʵÀý£¬ÔÚ´ËÆÚ¼ä£¬ÎÒÃÇÌáÈ¡²¢ÉèÖÃMailItemµÄÓò£º

// ¶ÁÈ¡XMLÊý¾Ý
  while(xml.Read())
  {
    string name = xml.Name;
    XmlNodeType nodeType = xml.NodeType;
    // ÊÇÒ»¸öemail£¿
    if(name == "D:response")
    {
        // ¿ªÊ¼£¿
        if(nodeType == XmlNodeType.Element)
        {
          // ´´½¨Ò»¸öеÄMailItem
          mailItem = new MailItem();
        }
        // ½áÊø£¿
        if(nodeType == XmlNodeType.EndElement)
        {
          // ±£´æemail
          mailItems.Add(mailItem);
          // Çå³ý±äÁ¿
          mailItem = null;
        }
      }

      // ÊÇÒ»¸öÔªËØ£¿
      if(nodeType == XmlNodeType.Element)
      {
        // ÓʼþµÄURLÊôÐÔ
        if(name == "D:href")
        {
          // ¼ÌÐø¶ÁÈ¡
          xml.Read();
          mailItem.Url = xml.Value;
        }

        // ÓʼþµÄ¡°ÒÑÔĶÁ¡±ÊôÐÔ
        if(name == "hm:read")
        {
          // ¼ÌÐø¶ÁÈ¡
          xml.Read();
          mailItem.IsRead = (xml.Value == "1");
        }

        // ÆäËûMailItemµÄÊôÐÔ...
      }
    }



¡¡¡¡ÉÏÃæµÄ´úÂëö¾ÙÖ¸¶¨Îļþ¼ÐÄÚµÄÿһ¸öMailItem£¬·Ö±ðÌáÈ¡¸÷¸öMailItemµÄÏÂÁÐÊôÐÔ£º

XML½Úµã  ËµÃ÷  
D:href  ÓÃÀ´ÌáÈ¡ÓʼþµÄURL  
hm:read  Èç¹ûÓʼþÒÑÔĶÁ£¬Ôò¸Ã±ê¼Ç±»ÉèÖà 
m:to  ÊÕ¼þÈË  
m:from  ·¢¼þÈË  
m:subject  ÓʼþÖ÷Ìâ  
m:date  Ê±¼ä±ê¼Ç  
D:getcontentlength  ÓʼþµÄ´óС£¨×Ö½ÚÊý£©



¡¡¡¡Îå¡¢½ÓÊÕÓʼþ

¡¡¡¡Ã¶¾Ù³öÎļþ¼ÐÀïÃæµÄMailItemÖ®ºó£¬ÎÒÃǾͿÉÒÔÀûÓÃMailItemµÄURL»ñµÃÓʼþ±¾Éí£¬Ö»ÐèÒªÏòHotmail·þÎñÆ÷·¢ËÍÒ»¸öHTTP/1.1 GETÇëÇó¾Í¿ÉÒÔÁË¡£Ê¾Àý´úÂëÖеÄLoadMail()º¯ÊýÊäÈëÒ»¸öMailItemʵÀý×÷Ϊ²ÎÊý£¬·µ»ØÓʼþµÄÄÚÈÝ£º

/// <summary>
  /// ÏÂÔØMailItemÖ¸¶¨µÄÓʼþ
  /// </summary>
  public string LoadMail(MailItem mailItem)
  {
    // ÓʼþµÄURL
    string mailUrl = mailItem.Url;
    // ´ò¿ªHotmail·þÎñÆ÷Á¬½Ó
    xmlHttp_.open("GET", mailUrl, false, null, null);
    // ·¢ËÍÇëÇó
    xmlHttp_.send(null);
    // »ñȡӦ´ð
    string mailData = xmlHttp_.responseText;
    // ·µ»ØÓʼþÊý¾Ý
    return mailData;
  }



¡¡¡¡Áù¡¢·¢ËÍÓʼþ

¡¡¡¡LoadMail()·½·¨Í¨¹ý·¢ËÍHTTP/1.1 GETÇëÇó»ñÈ¡Óʼþ£¬ÀàËÆµØ£¬ÓÃHotmail·¢¼þÏä·¢ËÍÓʼþʱÎÒÃÇÌá½»Ò»¸öPOSTÇëÇó£¬ÈçÏÂÃæµÄSendMail()·½·¨Ëùʾ¡£

/// <summary>
  /// ·¢ËÍÒ»¸öÓʼþ
  /// </summary>
  public void SendMail(string from, string fromName,
    string to, string subject, string body)
  {
    ...
  }



¡¡¡¡Ê×ÏÈ×¼±¸ºÃºóÃæÒªÓõ½µÄÒýºÅ×Ö·ûÒÔ¼°ÓʼþµÄʱ¼ä±ê¼Ç£º

// ÒýºÅ×Ö·û
  string quote = "\u0022";

  // ʱ¼ä±ê¼Ç
  DateTime now = DateTime.Now;
  string timeStamp = now.ToString("ddd, dd MMM yyyy hh:mm:ss");



¡¡¡¡HTTPMailЭÒé²ÉÓÃÓëSMTPÏàËÆµÄͨÐÅģʽ¡£Outlook ExpressÓÃMIME¸ñʽ·¢ËÍÓʼþ£¬µ«Îª¼òµ¥¼Æ£¬±¾ÀýÎÒÃÇÖ»·¢ËÍ´¿Îı¾µÄÓʼþ£º

// ¹¹ÔìPOSTÇëÇóµÄÄÚÈÝ
  string postBody = null;
  // ÓʼþÍ·.
  postBody += "MAIL FROM:<" + from + ">\r\n";
  postBody += "RCPT TO:<" + to + ">\r\n";
  postBody += "\r\n";
  postBody += "From: " + quote + fromName + quote + " <" + from + ">\r\n";
  postBody += "To: <" + to + ">\r\n";
  postBody += "Subject: " + subject +"\r\n";
  postBody += "Date: " + timeStamp + " -0000\n";
  postBody += "\r\n";
  // ÓʼþÕýÎÄ
  postBody += body;



¡¡¡¡·¢ËÍÓʼþʱ£¬ÎÒÃÇÒª°ÑContent-TypeÇëÇóÍ·ÉèÖóÉmessage/rfc821£¬±íʾÕâ¸öÇëÇó°üº¬Ò»¸ö×ñ´ÓRFC821µÄÏûÏ¢¡£×îºóÒª×öµÄ¾ÍÊǰÑÓʼþ·¢Ë͵½·þÎñÆ÷£º

// ´ò¿ªÁ¬½Ó
  xmlHttp_.open("POST", sendUrl_, false, null, null);
  // ·¢ËÍÇëÇó
  xmlHttp_.setRequestHeader("Content-Type", "message/rfc821");
  xmlHttp_.send(postBody);



¡¡¡¡Ö»ÒªÄ¿±êµØÖ·ÕýÈ·ÎÞÎó£¬Hotmail¾Í»á°ÑÓʼþ·¢Ë͵½Ä¿µÄµØ¡£

¡¡¡¡½áÊøÓ

¡¡¡¡HotmailÊÇÊÀ½çÉÏ×î´óµÄÃâ·ÑWebÓʼþÌṩÉÌ¡£µ«ÊÇ£¬HotmailʹÓõÄHTTPMailЭÒéÊǷǹ«¿ªµÄ£¬´Ó¶øÎª±àдֱ½Ó·ÃÎÊHotmailµÄ¿Í»§³ÌÐò´øÀ´ÁËÀ§ÄÑ¡£±¾ÎÄʾ·¶ÁËÈçºÎÔÚC#»·¾³ÖÐÀûÓÃXMLHTTP×é¼þÖ±½ÓÁ¬½Óµ½Hotmail£¬ÒÔ¼°ÈçºÎ·¢ËͺͽÓÊÕÓʼþ£¬Ö¤Ã÷ÁËͨ¹ýHTTPMailÁ¬½ÓHotmail¿ÉÒÔ×öµ½ÏóʹÓÃPOP3¡¢IMAP4¡¢SMTPµÈЭÒéÒ»Ñù¼òµ¥¡£ £¨ÏÂÔØ±¾ÎĵÄÍêÕû´úÂ룺 HotmailCSharp_code.zip(8K)¡£ £©
Ïà¹ØÎÄÕ ÈÈÃÅÎÄÕÂ
  • HotmailÌáʾ£ºÈçºÎ·À·¶µç×ÓÓʼþÆÛÕ©
  • ΢Èí×îʺʮ´ó²úÆ· Hotmail³ÉÀ¬»øÎ´²
  • ΢Èí Live Hotmail Wave3й¦Äܼò½é
  • HotmailÓû§ÔâºÚ¿ÍÀÕË÷ ΢Èí³ÆÓû§Ê¹Óò»É÷
  • HotmailÓÊÏäÔâ·Ç·¨¹¥Èë ΢Èí·´Ó¦³Ù»º
  • Hotmail¡°Í¨Ñ¶Â¼¡±ÈÃÄãµÄ¹µÍ¨¸ü¿ì¸ü·½±ã
  • HotmailÆßÔÂÆð²»ÔÙÖ§³ÖOutlook Express
  • ¼ÓËÙÌÔÌ­Outlook Express ΢Èí×èÆä·ÃÎÊHotmail
  • Windows Live Hotmail×¢²áÑéÖ¤»úÖÆÔâÆÆ½â
  • СÊÔYahooºÍHotmailµÄ·ÀÀ¬»øÓʼþÄÜÁ¦
  • ΢Èí³ÐÈÏHotmail¹ÊÕÏδÍêÈ«½â¾ö
  • ΢ÈíLiveµÇ½±¬¹ÊÕÏ Hotmail¼°ÐÅʹÎÞ·¨Ê¹ÓÃ
  • ÓÃC++ BuilderʵÏÖµç×ÓÓʼþȺ·¢
  • ÓÃCdontsʵÏÖ·¢ËÍEmail
  • JmailµÄÖ÷Òª²ÎÊýÁбí
  • ASP.NET 2.0·¢Ë͵ç×ÓÓʼþÈ«ÃæÆÊÎöÖ®¶þ
  • VC++ SMTPЭÒéµç×ÓÓʼþ´«ËÍÆÊÎö
  • ͨ¹ýsinaµÄsmtpÑéÖ¤µÄJava·¢ËÍÓʼþÔ´´úÂë
  • ASP.NET 2.0Öз¢Ë͵ç×ÓÓʼþÆÊÎöÖ®Ò»
  • ÔÚAsp.NetÖÐʹÓÃSmtpMail·¢ËÍÓʼþµÄ·½·¨
  • .NET»·¾³ÏÂEmailµÄ¼¼Êõ½éÉÜ
  • ASP.NET 2.0·¢Ë͵ç×ÓÓʼþÖдæÔÚµÄÎÊÌâ
  • ÓÃASPÅжÏEmailµØÖ·ÊÇ·ñÓÐЧ
  • IISÈçºÎ½ÓÊÕServerXMLHTTP´«¹ýÀ´µÄ±àÂë×Ö·û?
  • ×ÔÓÉ¹ã¸æÇø
    ¡¡
     
    ×îÐÂÈí¼þÏÂÔØ
  • ORF Enterprise Edition 4.2 Õýʽ°æ
  • WinWebMail 3.7.7.3 ±ê×¼°æ
  • WinWebMail 3.7.7.3 ÆóÒµ°æ
  • BMailì÷ÓÊ
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ¼..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NETÏÂÔØ
  • symantec10.1»ù±¾°²×°¼°ÅäÖÃÊÓÆµ½Ì³Ì
  • Backup Exec System RecoveryÖ®±¸·ÝÊÓÆ..
  • ½ñÈÕÓʼþ¼¼ÊõÎÄÕÂ
  • ÃÀ´óѧÉúÇÖÈëÅåÁÖÖݳ¤¸öÈËÓʼþÕË»§±»´þ²¶
  • ˼¿ÆIronPort·¢²¼Ðµç×ÓÓʼþ°²È«É豸
  • Éî¸û"Èí¼þ+·þÎñ" ΢Èí300³ÇÊÐѲչî£ÓÊ
  • ´ÓºÚ¿Í³£Óù¥»÷Êֶο´WEBÓ¦Ó÷À»¤
  • ÏûÏ¢ÈËʿ͸¶ÑÅ»¢ÓëAOLºÏ²¢Ï¸½Ú½«ÓÚ±¾Ô..
  • ¹È¸èÌṩµÄµç×ÓÓʼþ´æµµÊ±¼äÑÓ³¤ÎªÊ®Äê
  • ÑÅ»¢½«ÔÚÓÊÏä·þÎñÖÐÕûºÏаæÔÚÏßÈÕÀú
  • 9ÔÂÀ¬»øÓʼþ×ÜÁ¿¼õÉÙ ÓëISPµ¹±ÕÓйØ
  • À¬»øÓʼþ·¢Õ¹µÄËÄ´óÇ÷ÊÆ
  • º«¹úÒéÔ±³ÆÖйúºÚ¿Íð³äÇàÍß̨·¢ËͲ¡¶¾..
  • VistaÄÑ³ÉÆøºò Windows XPÊÙÃü±»ÑÓ³¤
  • ÈüÃÅÌú¿ËÉý¼¶DLP²úÆ·¼°·´À¬»øÓʼþÍø¹Ø
  • ×îÐÂרÌâ
  • Sendmail ÓʼþϵͳÅäÖÃ
  • ×齨Exchange 2003Óʼþϵͳ
  • Windows Server 2008 רÌâ
  • ORF ·´À¬»øÓʼþϵͳ
  • Exchange Server 2007 רÌâ
  • ISA Server 2006 ½Ì³ÌרÌâ
  • Windows Vista ¼¼ÊõרÌâ
  • ¡°ºÚÝ®¡±£¨BlackBerry£©×¨Ìâ
  • ÒÆ¶¯µç×ÓÓʼþרÌâ
  • Apache James רÌâ
  • IMail Server ²Ù×÷Ö¸ÄÏ
  • ISA Server 2004 ʹÓÃרÌâ
  • ·ÖÀർº½
    ÓʼþÐÂÎÅ×ÊѶ:
    ITÒµ½ç | Óʼþ·þÎñÆ÷ | ÓʼþȤÎÅ | ÒÆ¶¯µçÓÊ
    µç×ÓÓÊÏä | ·´À¬»øÓʼþ|Óʼþ¿Í»§¶Ë|ÍøÂ簲ȫ
    ÐÐÒµÊý¾Ý | ÓʼþÈËÎï | ÍøÕ¾¹«¸æ | ÐÐÒµ·¨¹æ
    ÍøÂç¼¼Êõ:
    ÓʼþÔ­Àí | ÍøÂçЭÒé | ÍøÂç¹ÜÀí | ´«Êä½éÖÊ
    Ïß·½ÓÈë | ·ÓÉ½Ó¿Ú | Óʼþ´æ´¢ | »ªÎª3Com
    CISCO¼¼Êõ | ÍøÂçÓë·þÎñÆ÷Ó²¼þ
    ²Ù×÷ϵͳ:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | ÆäËü²Ù×÷ϵͳ
    Óʼþ·þÎñÆ÷:
    ³ÌÐòÓ뿪·¢ | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    ½ðµÑÓʼþϵͳ | ÆäËü |
    ·´À¬»øÓʼþ:
    ×ÛÊö| ¿Í»§¶Ë·´À¬»øÓʼþ|·þÎñÆ÷¶Ë·´À¬»øÓʼþ
    Óʼþ¿Í»§¶ËÈí¼þ:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | À×Äñ | Eudora |Becky! |Pegasus
    IncrediMail |ÆäËü
    µç×ÓÓÊÏä: ¸öÈËÓÊÏä | ÆóÒµÓÊÏä |Gmail
    ÒÆ¶¯µç×ÓÓʼþ:·þÎñÆ÷ | ¿Í»§¶Ë | ¼¼ÊõÇ°ÑØ
    ÓʼþÍøÂ簲ȫ:
    Èí¼þ©¶´ | °²È«ÖªÊ¶ | ²¡¶¾¹«¸æ |·À»ðǽ
    ¹¥·À¼¼Êõ | ²¡¶¾²éɱ| ISA | Êý×ÖÇ©Ãû
    ÓʼþÓªÏú:
    EmailÓªÏú | ÍøÂçÓªÏú | ÓªÏú¼¼ÇÉ |ÓªÏú°¸Àý
    ÓʼþÈ˲Å:ÕÐÆ¸ | Ö°³¡ | Åàѵ | Ö¸ÄÏ | Ö°³¡
    ½â¾ö·½°¸:
    Óʼþϵͳ|·´À¬»øÓʼþ |°²È« |ÒÆ¶¯µçÓÊ |Õбê
    ²úÆ·ÆÀ²â:
    Óʼþϵͳ |·´À¬»øÓʼþ |ÓÊÏä |°²È« |¿Í»§¶Ë
    ¹ã¸æÁªÏµ | ºÏ×÷ÁªÏµ | ¹ØÓÚÎÒÃÇ | ÁªÏµÎÒÃÇ | ·±ówÖÐÎÄ
    °æÈ¨ËùÓУºÓʼþ¼¼Êõ×ÊÑ¶Íø©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   ÔÁICP±¸05009143ºÅ