¡¡¡¡ Ò».MAPI¿Ø¼þ¸ÅÊö
¡¡¡¡ MAPI(ͨÐÅÓ¦ÓóÌÐò½Ó¿Ú)¿Ø¼þ£¬¼´MSMAPI32.OCX£¬°üÀ¨Á½¸öOLE¿Ø¼þ£ºMAPISession(MAPI¹¤×÷ÆÚ)¿Ø¼þºÍMAPIMessage(MAPIÏûÏ¢)¿Ø¼þ¡£MAPISession¿Ø¼þµÄ¹¦ÄÜÊǸºÔð½¨Á¢»á»°¡¢È¡Ïû»á»°µÄÒ»¸öMAPI¹¤×÷ÆÚ¡£MAPIMessage¿Ø¼þÔòÌṩÁË·¢ËÍ¡¢½ÓÊÕµÈËùÓжԵç×ÓÓʼþ½øÐд¦ÀíµÄ¹¦ÄÜ¡£
¡¡¡¡ MAPISession¿Ø¼þÓÃÀ´×¢²áÒ»¸öй¤×÷ÆÚºÍ×¢Ïúµ±Ç°¹¤×÷ÆÚ¡£×¢²áʱ£¬Ê×ÏÈ
¡¡¡¡ÓÃMAPISession¿Ø¼þµÄSignOn·½·¨½¨Á¢ÓëE-mail·þÎñÆ÷µÄ»á»°Á¬½Ó£¬ÏÔʾÍê×¢²á¶Ô»°¿òºó£¬SessionIDÊôÐÔ°üº¬Á˸Õ×¢²áµÄMAPISessionµÄ¾ä±ú¡£´Ë¾ä±ú×îÖÕ±ØÐë´«µÝ¸øMAPIMessage¿Ø¼þ£¬ÔÚ½áÊøµ±Ç°MAPISession¹¤×÷ÆÚ֮ǰ£¬±ØÐëÏÈ×¢Ïú¸Ã¹¤×÷ÆÚ¡£È»ºóÔÙÓÃMAPIMessage¿Ø¼þµÄSessionIDÊôÐÔͬÓÐЧµÄ»á»°ÁªÏµÆðÀ´£¬Ö´ÐÐһϵÁÐÏûϢϵͳº¯Êý£¬ÊµÏÖÊÕ·¢ÓʼþµÄ¹¦ÄÜ¡£
¡¡¡¡ ¶þ.MAPI¿Ø¼þµÄÖ÷ÒªÊôÐÔ
¡¡¡¡ (1)MAPISession¿Ø¼þµÄÊôÐÔ:
¡¡¡¡ ActionÊôÐÔ£ºµ±MAPISession¿Ø¼þ±»¼¤»îʱ,¸ÃÊôÐÔ½«¾ö¶¨Ö´ÐÐʲô²Ù×÷¡£
¡¡¡¡ LogonUIÊôÐÔ£º¸ÃÊôÐÔÖ¸¶¨ÊÇ·ñÏÔʾע²á¶Ô»°¿ò¡£µ±ÆäֵΪ¡°Õ桱ʱ£¬Ôò³ö
¡¡¡¡ÏÖÒ»¸ö¶Ô»°¿òÌáʾÐÂÓû§ÊäÈëÓû§ÃûºÍ¿ÚÁµ±ÆäֵΪ¡°¼Ù¡±Ê±£¬Ôò²»ÏÔʾ¶Ô»°¿ò¡£
¡¡¡¡ SessionIDÊôÐÔ£º·µ»Øµ±Ç°µÄÏûÏ¢»á»°¾ä±ú¡£Ö¸¶¨SignOn·½·¨Ê±£¬¿ÉÒÔÉèÖøÃÊôÐÔµÄÖµ¡£Ê¹ÓÃMAPIMessage¿Ø¼þ´¦ÀíÏûϢʱ£¬ÐèҪʹÓô˻Ự¾ä±ú£¬ÆäȱʡֵΪ0¡£
¡¡¡¡ SignOn·½·¨£º½«Óû§µÇ¼µ½UserNameºÍPasswordÊôÐÔËùÖ¸¶¨µÄÕÊ»§ÖУ¬²¢½«»á»°¾ä±ú´æ´¢µ½ÊôÐÔSessionIDÖС£
¡¡¡¡ SignOff·½·¨£º½áÊøÏûÏ¢»á»°£¬´ÓUserNameºÍPasswordÊôÐÔËùÖ¸¶¨µÄÕÊ»§ÖÐ
¡¡¡¡Í˳ö¡£
¡¡¡¡ (2)MAPIMessage¿Ø¼þµÄÊôÐÔ:
¡¡¡¡ ActionÊôÐÔ£ºµ±MAPIMessage¿Ø¼þ±»¼¤»îʱ,¸ÃÊôÐÔ¾ö¶¨½«Ö´ÐÐʲô²Ù×÷¡£
¡¡¡¡ SessionIDÊôÐÔ£º´æ´¢ÓÉMAPISession¿Ø¼þµÄSessionIDÊôÐÔ·µ»ØµÄÏûÏ¢»á»°¾ä±ú¡£
¡¡¡¡ FetchSortedÊôÐÔ£ºÔÚÓÃÊÕ¼þÏäÖеÄÏûÏ¢Ìî³äÏûÏ¢¼¯ºÏʱ£¬Ö¸¶¨»ò·µ»ØÏûÏ¢µÄÅÅÐò¡£µ±ÆäֵΪ¡°Õ桱ʱ£¬°´½ÓÊÕÏûÏ¢µÄ˳ÐòÏòÏûÏ¢¼¯ºÏÌí¼ÓÏûÏ¢£»µ±ÆäֵΪ¡°¼Ù¡±Ê±£¬ÓÉÓû§ÊÕ¼þÏäÖеÄÅÅÐòÌí¼ÓÏûÏ¢¡£
¡¡¡¡ FetchUnreadOnlyÊôÐÔ£º¾ö¶¨ÊÇ·ñ½«ÏûÏ¢¼¯ºÏÖеÄÏûÏ¢ÏÞ¶¨ÎªÎ´¶ÁÏûÏ¢¡£µ±ÆäֵΪ¡°Õ桱ʱ£¬Ö»ÏòÏûÏ¢¼¯ºÏÌí¼ÓFetchMsgTypeÊôÐÔÖ¸¶¨µÄδ¶ÁÏûÏ¢£»µ±ÆäֵΪ¡°¼Ù¡±Ê±£¬Ìí¼ÓÊÕ¼þÏäÖÐÊʵ±ÀàÐ͵ÄÈ«²¿ÏûÏ¢¡£
¡¡¡¡ MsgCountÊôÐÔ£ºÓÃÓÚÔÚÏûÏ¢¹¤×÷ÆÚ¼ä·µ»Ø´æÔÚÓÚÏûÏ¢ÉèÖÃÖеÄÏûÏ¢µÄ×ÜÊý¡£
¡¡¡¡ MsgIndexÊôÐÔ£ºÖ¸¶¨µ±Ç°Ë÷ÒýÏûÏ¢µÄË÷Òý±àºÅ¡£ÔÚË÷Òý¸Ä±äʱ£¬ËùÓÐÏûÏ¢µÄÆäËüÊôÐÔÒ²ËæÖ®¸Ä±ä£¬ÒÔ·´Ó³Ë÷ÒýÏûÏ¢µÄÌØÕ÷¡£Ë÷ÒýºÅµÄ·¶Î§ÊÇ´Ó£1µ½MsgCount£1¡£
¡¡¡¡ MsgOrigDisplayNameÊôÐÔ£º·µ»Øµ±Ç°Ë÷ÒýÏûÏ¢µÄÔʼ·¢¼þÈ˵ÄÃû×Ö¡£
¡¡¡¡ MsgOrigAddressÊôÐÔ£º·µ»Øµ±Ç°Ë÷ÒýÏûÏ¢µÄÔʼ·¢¼þÈ˵ÄÓʼþµØÖ·¡£
¡¡¡¡ RecipDisplayName¡¢RecipAddress¡¢MsgSubject¡¢MsgNoteTextÊôÐÔ£º·Ö±ðÖ¸¶¨µ±Ç°Ë÷ÒýµÄÊÕ¼þÈËÐÕÃû¡¢ÊÕ¼þÈ˵ÄÓʼþµØÖ·¡¢Ö÷Ìâ¡¢Îı¾ÐУ¬¹¹³ÉÒ»ÌõÍêÕûµÄÏûÏ¢¡£
¡¡¡¡ Send·½·¨£º·¢ËÍÒ»ÌõÏûÏ¢¡£Ëü´øÓÐÒ»¸ö²ÎÊýnDialog£¬µ±nDialogΪ¡°Õ桱ʱ£¬ÏÔʾExchangeÓʼþϵͳµÄ²Ù×÷½çÃæ£¬ÓÉÓû§ÊäÈëÏûÏ¢µÄ¸÷¸ö²¿·Ö£¬²¢½«ÏûÏ¢Ìá½»Óʼþ·þÎñÆ÷´«ËÍ£»µ±nDialogΪ¡°¼Ù¡±Ê±£¬Ôò²»ÏÔʾÏàÓ¦µÄ²Ù×÷½çÃæ£¬¶ø½«ÏûÏ¢Ìá½»¸øÓʼþ·þÎñÆ÷¡£
¡¡¡¡ Reply·½·¨£ºÏìÓ¦Ò»¸öÏûÏ¢¡£½«µ±Ç°Ë÷ÒýµÄÏûÏ¢¸´ÖƵ½¹¹³É»º³åÇøÖУ¬²¢½«RE£º¼ÓÈë±êÌâÐеĿªÊ¼£¬Í¬Ê±½«MsgIndexÊôÐÔÉèÖÃΪ£1¡£
¡¡¡¡ Delete·½·¨£ºÉ¾³ýÒ»¸öÏûÏ¢¡¢ÊÕ¼þÈË»ò¸½¼þ¡£
¡¡¡¡ Compose·½·¨£º¹¹³ÉÒ»ÌõÏûÏ¢¡£
¡¡¡¡ Fetch·½·¨£ºÓÉÊÕ¼þÏäÖÐÑ¡ÔñµÄÏûÏ¢´´½¨Ò»¸öÏûÏ¢¼¯ºÏ¡£
¡¡¡¡
¡¡¡¡ Èý.Ó¦ÓÃʵÀý
¡¡¡¡ ¡ïÓ¦ÓÃʵÀýÒ»:ÓÃVB 5.0µÄMAPI¿Ø¼þÊÕ·¢Óʼþ¡£
¡¡¡¡1. ²åÈëMAPI¿Ø¼þµÄ·½·¨:
¡¡¡¡ÔÚVB 5.0Ö÷²Ëµ¥µÄ¡°¹¤³Ì¡±ÏîÖÐÑ¡Ôñ¡°²¿¼þ(0)¡±£¬ÔÚµ¯³öµÄ¿Ø¼þÀ¸ÖУ¬Ë«»÷¡°Microsoft MAPI Control 5.0¡±Ï°´¡°È·¶¨¡±¼ü·µ»Ø¡£ÄÇô£¬ÔÚ´°Ì幤¾ßÏäÖоÍÓÐÁËÉÏÊö¿Ø¼þ¡£
¡¡¡¡2.½¨Á¢º¬ÓÐÈçÏ¿ؼþµÄ´°Ì壺
¡¡¡¡ ¿Ø¼þ NAME CAPTION
¡¡¡¡ Ö÷´°Ìå frmMail ÓÃVB 5.0µÄMAPI¿Ø¼þÊÕ·¢Óʼþ
¡¡¡¡ MAPISession¿Ø¼þ MailSess
¡¡¡¡ MAPIMessage¿Ø¼þ MailMess
¡¡¡¡ ÃüÁî°´Å¥ cmdNewMail ·¢¼þÏä
¡¡¡¡ ÃüÁî°´Å¥ cmdGetMail ÊÕ¼þÏä
¡¡¡¡ ÃüÁî°´Å¥ cmdExit Í˳ö
¡¡¡¡ ×Ó´°Ìå frmNewMail ·¢¼þÏä
¡¡¡¡ ±êÇ© label1 ÊÕ¼þÈË:
¡¡¡¡ ±êÇ© label2 Ö÷Ìâ:
¡¡¡¡ Îı¾¿ò TEXT1 'ÊäÈëÊÕ¼þÈ˵ĵç×ÓÓʼþµØÖ·
¡¡¡¡ Îı¾¿ò TEXT2 'ÊäÈëÎı¾µÄÖ÷Ìâ
¡¡¡¡ Îı¾¿ò TEXT3 'ÊäÈëÎı¾ÄÚÈÝ
¡¡¡¡ ÃüÁî°´Å¥ MailSend ·¢ËÍÓʼþ
¡¡¡¡ ×Ó´°Ìå frmGetMail ÊÕ¼þÏä
¡¡¡¡ ±êÇ© label1 ·¢¼þÈË:
¡¡¡¡ ±êÇ© label2 Ö÷Ìâ:
¡¡¡¡ Îı¾¿ò TEXT1 '·¢¼þÈ˵ĵç×ÓÓʼþµØÖ·
¡¡¡¡ Îı¾¿ò TEXT2 '·¢À´µÄÎı¾Ö÷Ìâ
¡¡¡¡ Îı¾¿ò TEXT3 '·¢À´µÄÎı¾ÄÚÈÝ
¡¡¡¡ ÃüÁî°´Å¥ cmdPrevious Ïòǰ
¡¡¡¡ ÃüÁî°´Å¥ cmdNext Ïòºó
¡¡¡¡
¡¡¡¡ ÊäÈëÖ÷´°Ìå¡°·¢¼þÏ䡱°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub cmdNewMail_Click()
¡¡¡¡ frmNewMail.Show
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëÖ÷´°Ìå¡°ÊÕ¼þÏ䡱°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub cmdGetMail_Click()
¡¡¡¡ frmGetMail.Show
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëÖ÷´°Ìå¡°Í˳ö¡±°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub cmdExit_Click()
¡¡¡¡ frmMail.MailSess.SignOff '¶Ï¿ªÁ¬½Ó
¡¡¡¡ End
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëfrmNewMail×Ó´°Ìå¡°·¢ËÍÓʼþ¡±°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub MailSend_Click()
¡¡¡¡ frmMail.MailSess.SignOn '½¨Á¢Á¬½Ó
¡¡¡¡ frmMail.MailMess.SessionID = frmMail.MailSess.SessionID
¡¡¡¡ frmMail.MailMess.MsgIndex = -1
¡¡¡¡ frmMail.MailMess.RecipDisplayName = Text1.Text
¡¡¡¡ frmMail.MailMess.MsgSubject = Text2.Text
¡¡¡¡ frmMail.MailMess.MsgNoteText = Text3.Text
¡¡¡¡ frmMail.MailMess.Send (False)
¡¡¡¡ frmMail.MailSess.SignOff
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëfrmGetMail×Ó´°Ìå×°ÈëµÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub Form_Load()
¡¡¡¡ Dim mailIndex, mailCounts As Integer
¡¡¡¡ frmMail.MailSess.SignOn
¡¡¡¡ frmMail.MailMess.SessionID = frmMail.MailSess.SessionID
¡¡¡¡ frmMail.MailMess.FetchSorted = True
¡¡¡¡ frmMail.MailMess.FetchUnreadOnly = True
¡¡¡¡ frmMail.MailMess.Action = 1
¡¡¡¡ mailCounts = frmMail.MailMess.MsgCount
¡¡¡¡ If mailCounts = 0 Then
¡¡¡¡ Text3.Text = "ÊÕ¼þÏäÖÐûÓÐÓʼþ£¡"
¡¡¡¡ frmGetMail.cmdPrevious.Enabled = False
¡¡¡¡ frmGetMail.cmdNext.Enabled = False
¡¡¡¡ Else
¡¡¡¡ frmGetMail.MailMess.MsgIndex = 0
¡¡¡¡ frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress
¡¡¡¡ frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject
¡¡¡¡ frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText
¡¡¡¡ End If
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëfrmGetMail×Ó´°Ìå¡°Ïòǰ¡±°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub cmdPrevious_Click()
¡¡¡¡ mailIndex = frmGetMail.MailMess.MsgIndex
¡¡¡¡ frmGetMail.MailMess.MsgIndex = mailIndex - 1
¡¡¡¡ frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress
¡¡¡¡ frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject
¡¡¡¡ frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText
¡¡¡¡ If mailIndex = 0 Then
¡¡¡¡ frmGetMail.cmdPrevious.Enabled = False
¡¡¡¡ End If
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ÊäÈëfrmGetMail×Ó´°Ìå¡°Ïòºó¡±°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ Private Sub cmdNext_Click()
¡¡¡¡ mailCounts = frmGetMail.MailMess.MsgCount - 1
¡¡¡¡ mailIndex = frmGetMail.MailMess.MsgIndex
¡¡¡¡ frmGetMail.MailMess.MsgIndex = mailIndex + 1
¡¡¡¡ frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress
¡¡¡¡ frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject
¡¡¡¡ frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText
¡¡¡¡ If mailIndex = mailCounts Then
¡¡¡¡ frmGetMail.cmdNext.Enabled = False
¡¡¡¡ End If
¡¡¡¡ End Sub
¡¡¡¡
¡¡¡¡ ¡ïÓ¦ÓÃʵÀý¶þ:ÓÃVFP 5.0µÄMAPI¿Ø¼þÊÕ·¢Óʼþ¡£
¡¡¡¡1. ²åÈëMAPI¿Ø¼þµÄ·½·¨:
¡¡¡¡ÔÚVFP 5.0Ö÷²Ëµ¥µÄ¡°¹¤¾ß¡±ÏîÖÐÑ¡Ôñ¡°Ñ¡Ï,ÔÚµ¯³öµÄ¿Ø¼þÀ¸ÖÐ,Ë«»÷¡°Microsoft MAPI Control 5.0¡±ÏÄÇô£¬ÔÚ´°Ì幤¾ßÏäÖоÍÓÐÁËÉÏÊö¿Ø¼þ¡£
¡¡¡¡2.½¨Á¢º¬ÓÐÈçÏ¿ؼþµÄ´°Ì壺
¡¡¡¡ ¿Ø¼þ NAME CAPTION
¡¡¡¡ ´°Ìå frmMail ÓÃVFP 5.0µÄMAPI¿Ø¼þÊÕ·¢Óʼþ
¡¡¡¡ MAPISession¿Ø¼þ MailSess
¡¡¡¡ MAPIMessage¿Ø¼þ MailMess
¡¡¡¡ ÃüÁî°´Å¥ command1 ·¢¼þÏä
¡¡¡¡ ÃüÁî°´Å¥ command2 ÊÕ¼þÏä
¡¡¡¡ ÃüÁî°´Å¥ command3 Í˳ö
¡¡¡¡
¡¡¡¡ ÊäÈë¡°·¢¼þÏ䡱°´Å¥µ¥»÷ʼþµÄ³ÌÐò´úÂë:
¡¡¡¡ thisform.MailSess.SignOn
¡¡¡¡ thisform.MailMess.SessionID = thisform.MailSess.SessionID
¡¡¡¡ thisform.MailMess.MsgIndex = -1
¡¡¡¡ thisform.MailMess.RecipDisplayName = "zjport@public.jsinfo.com.cn"
¡¡¡¡ thisform.MailMess.MsgSubject = "Ðżþ"
¡¡¡¡ thisform.MailMess.MsgNoteText = "Çë¸øÎÒ·¢Óʼþ!"
¡¡¡¡ thisform.MailMess.Send (.F.)
¡¡¡¡ thisform.MailSess.SignOff
¡¡¡¡
¡¡¡¡ ÊäÈë¡°ÊÕ¼þÏ䡱°´Å¥µ¥»÷ʼþµÄ³ÌÐò´úÂë:
¡¡¡¡ thisform.MailSess.SignOn
¡¡¡¡ thisform.MailMess.SessionID = thisform.MailSess.SessionID
¡¡¡¡ thisform.MailMess.FetchSorted = .T.
¡¡¡¡ thisform.MailMess.FetchUnreadOnly = .T.
¡¡¡¡ thisform.MailMess.Action = 1
¡¡¡¡ xx=''
¡¡¡¡ for mm=0 to thisform.MailMess.MsgCount-1
¡¡¡¡ thisform.MailMess.MsgIndex = mm
¡¡¡¡ xx=xx+thisform.MailMess.MsgNoteText+chr(13)+chr(10)
¡¡¡¡ endf
¡¡¡¡ thisform.MailSess.SignOff
¡¡¡¡
¡¡¡¡ ÊäÈë¡°Í˳ö¡±°´Å¥µÄ³ÌÐò´úÂë:
¡¡¡¡ thisform.MailSess.SignOff
¡¡¡¡ release thisform
¡¡¡¡ ÉÏÊö³ÌÐòÖ»ÊǸø³öÓÃVB 5.0ºÍVFP 5.0¿ª·¢E-mail³ÌÐòµÄ¼òµ¥°¸Àý£¬Óû§¿ÉÒÔ½áºÏ×Ô¼ºµÄʵ¼ÊÇé¿ö£¬½«ÉÏÊö³ÌÐòÐ޸ġ¢ÍêÉÆºó£¬¼ÓÈëµ½×Ô¼ºµÄÓ¦ÓÃϵͳÖÐÈ¥£¬Ê¹Ó¦ÓÃϵͳµÄ¹¦ÄܸüÇ¿´ó¡£
¡¡¡¡ ÒÔÉϳÌÐòÔÚͬ´´P/200¡¢ÖÐÎÄWINDOWS 95¡¢WINDOWS NT 4.0¡¢Visual Foxpro 5.0¡¢Visual Basic 5.0Èí¡¢Ó²¼þ»·¾³ÖÐÔËÐв¢Í¨¹ý¡£
,| ×ÔÓÉ¹ã¸æÇø |
| ¡¡ |