没开发过,不过听说有Exchange开发的SDK,到微软网站下载把!

解决方案 »

  1.   

    你的Exchange至少要有固定的IP地址和域名才可以正常进行外部邮件的收发!
    如果你已经具备了这些条件。那就说第二点
    验证用户就是验证用户的用户名密码信息,这里你可以读取活动目录(Active dirsctory)中的具有mailbox的用户的信息,去你需要的用户的用户名密码和登陆的时候的用户名密码作比较,一般这种速度较慢,所以不采用,建议将用户名密码存放于Exchange的wss中或放到sql server或access或其他关系型数据库中再访问验证。
    对于读取邮件的详细信息你可以看Exchange SDK,上面有例子,很详细。
    发邮件也有例子,发邮件很简单。不需要设置,气体是你的Exchange有固定域名和IP地址,不然只能局域网里面发了。
      

  2.   

    谢谢楼上两位朋友的回复!我现在的练习环境是在局域网内,因此不打算收发外部的邮件,暂时只要能做到收发内部邮件就可以了。看了 storm97(风暴不再) 的建议,决定把用户名和密码放在SQL Server中。
    但是如何读取活动目录中的具有mailbox的用户的信息,这方面我还不知道,还请 storm97(风暴不再) 多多指教!谢谢!!
      

  3.   

    有谁知道在ASP.NET里面怎么可以发传真
      

  4.   

    抢我的买卖???  :)有哪位高手知道在ASP.NET里面怎么可以发传真的话可要告诉GOALSTAR,他可是 2008北京奥运会指定程序员 呀,  :)BTW: GOALSTAR(2008北京奥运会指定程序员),你知不知道在ASP.NET中如何读取活动目录中的具有mailbox的用户的信息呢?
      

  5.   

    记得是这样的。
    1.active directory users and computers里进行设置2.NetCredentials3.用dav 发送request~~,接受response~~4.system.web.mail..... 应该不难~~
      

  6.   

    TO:OMyDoG(密码:zse45rdx) 2.NetCredentials===============================================
    请问这个指的是什么?我不太清楚,我在VS.NET的帮助中索引了一下,没找到,麻请告之,谢谢!
    ===============================================3.用dav 发送request~~,接受response~~===============================================
    同样,dav我也不知道是指的什么,恕我太菜。。
    ===============================================
      

  7.   

    现在的问题集中在两点:1、如何读取活动目录中的具有mailbox的用户的信息?2、用户的信息中是否包括他设定的密码?希望高手继续出手相助,早日解决早日散分!谢谢!
      

  8.   

    NetworkCredential 类为基于密码的身份验证方案(如基本、简要、NTLM 和 Kerberos 身份验证)提供凭据。有关此类型所有成员的列表,请参阅 NetworkCredential 成员。WebDAV you can use the World Wide Web Distributed Authoring and Versioning (WebDAV) protocol to access Microsoft Exchange store content ~~呵呵,可以看exchange sdk 中的Issue Tracking Application例子~
      

  9.   

    添加Com引用:ado2.5
    下面是获取邮箱内邮件的例子,有点长,我分几段发,希望对你有帮助Public Function IGetItemFromInbox() As DataSet
                Dim cnn As ADODB.Connection
                Dim rst As ADODB.Recordset
                Dim urlQueryFld As String
                Dim strSQL As String
              
                urlQueryFld = "file://./backofficestorage/<domain name>/<user name>/mbx/administrator/收件箱/"
              cnn = New ADODB.Connection()
                    
                        With cnn
                            .Provider = "exoledb.datasource"
                            .Open(urlQueryFld)
                        End With '查询语句可以根据需要进行修改
                    ' Select the properties to be returned
                    strSQL = "Select " & AddQuotes("DAV:displayname") & ", " & _
                             AddQuotes("DAV:contentclass") & ", " & AddQuotes("DAV:isfolder") _
                             & ", " & AddQuotes("DAV:href")
                    ' Indicate shallow or deep traversal
                    ' and what URL to begin looking
                    strSQL = strSQL & " FROM SCOPE('SHALLOW traversal of " & AddQuotes(urlQueryFld) & "')"
                    ' Build a filter
                    ' This one restricts the results to folders
                    strSQL = strSQL & " WHERE (" & AddQuotes("DAV:isfolder") & " <> True)"
                    ' Sort the results by the display name
                    ' of the folder in descending order
                    strSQL = strSQL & " ORDER BY " & AddQuotes("DAV:displayname") & " DESC"                'Create a Recordset object
                    rst = New ADODB.Recordset()                    With rst
                            'Open Recordset based on the SQL string
                            .Open(strSQL, cnn)
                        End With '将查询结果封装到DataTable,然后将DataTable封装到DataSet以便查看结果
                    Dim objDataTable As DataTable
                    Dim objDS As New DataSet("tab")                objDataTable = objDS.Tables.Add("email")
                    'objDS.Tables.Add(objDataTable)                '//邮件文件编号、邮件文件名、发送到、接收者、抄送、(密件抄送)
                    objDataTable.Columns.Add("ID", Type.GetType("System.Int32"))
                    objDataTable.Columns.Add("displayname", Type.GetType("System.String"))
                    objDataTable.Columns.Add("From", Type.GetType("System.String"))
                    objDataTable.Columns.Add("To", Type.GetType("System.String"))
                    objDataTable.Columns.Add("CC", Type.GetType("System.String"))
                    '''objDataTable.Columns.Add("BCC", Type.GetType("System.String"))
                    '''objDataTable.Columns.Add("Reply_to", Type.GetType("System.String"))                '//发送者Email、发送者名称、
                    objDataTable.Columns.Add("FromName", Type.GetType("System.String"))
                    objDataTable.Columns.Add("FromEmail", Type.GetType("System.String"))
                    objDataTable.Columns.Add("ToName", Type.GetType("System.String"))
                    objDataTable.Columns.Add("CCName", Type.GetType("System.String"))
                    '''objDataTable.Columns.Add("BCCName", Type.GetType("System.String"))                '//主题、正文、Html正文、发送时间、接受时间、邮件大小
                    objDataTable.Columns.Add("displaySubject", Type.GetType("System.String"))
                    objDataTable.Columns.Add("Subject", Type.GetType("System.String"))
                    objDataTable.Columns.Add("Text", Type.GetType("System.String"))
                    objDataTable.Columns.Add("htmlText", Type.GetType("System.String"))
                    objDataTable.Columns.Add("SenderDate", Type.GetType("System.String"))
                    objDataTable.Columns.Add("receivedDate", Type.GetType("System.String"))
                    objDataTable.Columns.Add("length", Type.GetType("System.String"))                '//附件总数、附件名称、是否已读、重要性、优先级
                    objDataTable.Columns.Add("AttachmentCount", Type.GetType("System.Int32"))
                    objDataTable.Columns.Add("AttachmentFilename", Type.GetType("System.String"))
                    objDataTable.Columns.Add("read", Type.GetType("System.Boolean"))
                    objDataTable.Columns.Add("importance", Type.GetType("System.Int32")) '//(0,1,2,3..)
                    'objDataTable.Columns.Add("priority", Type.GetType("System.Int32"))                Dim workRow As DataRow
      

  10.   

    '附件数量和名字
                    Dim atch As Int16
                    Dim atchFileName As String
                    
    Dim i As Integer = 1                Dim fd As ADODB.Field
                    Dim Item, name, val As String
                    Do Until rst.EOF
                        Item = rst.Fields("DAV:displayname").Value                    Dim email As String
                        email = strFolderAndItemName(Item)                    'Item = domainDC
                     
                            With New ADODB.Record()
                                
                                    .Open(urlQueryFld & email & "/")
                                                           workRow = objDataTable.NewRow()
                                For Each fd In .Fields
                                    name = fd.Name                                Select Case name
                                        Case "DAV:displayname"
                                            '//displayname
                                            workRow("displayname") = fd.Value
                                        Case "urn:schemas:httpmail:from"
                                            '//Form
                                            workRow("From") = fd.Value
                                        Case "urn:schemas:httpmail:to"
                                            '//TO
                                            workRow("To") = fd.Value
                                        Case "urn:schemas:httpmail:cc"
                                            '//CC
                                            workRow("CC") = fd.Value
                                            'Case "urn:schemas:httpmail:bcc"
                                            '    '//BCC
                                            '    workRow("BCC") = fd.Value
                                        Case "urn:schemas:httpmail:displayto"
                                            '//TOName
                                            workRow("ToName") = fd.Value
                                        Case "urn:schemas:httpmail:displaycc"
                                            '//CCname
                                            workRow("CCName") = fd.Value
                                            'Case "urn:schemas:httpmail:displaybcc"
                                            '    '//BCCname
                                            '    workRow("BCCName") = fd.Value                                        'Case "urn:schemas:httpmail:reply-to"
                                            '    '//Subject
                                            ''    workRow("Reply_to") = fd.Value                                    Case "urn:schemas:httpmail:subject"
                                            '//Subject
                                            ''Dim subject As String
                                            ''Try
                                            ''    subject = fd.Value
                                            ''    If subject = "" Or subject = Nothing Then
                                            ''        subject = "无主题!"
                                            ''    End If
                                            ''Catch
                                            ''    subject = "无主题!"
                                            ''End Try                                        workRow("Subject") = fd.Value
                                            workRow("displaySubject") = Left(fd.Value, 16)
                                        Case "urn:schemas:httpmail:textdescription"
                                            '//Text
                                            workRow("Text") = fd.Value
                                        Case "urn:schemas:httpmail:htmldescription"
                                            '//Text
                                            workRow("htmlText") = fd.Value
                                        Case "urn:schemas:httpmail:date"
                                            '//SenderDate
                                            workRow("SenderDate") = IsDate(fd.Value)
                                        Case "urn:schemas:httpmail:datereceived"
                                            '//receivedDate
                                            workRow("receivedDate") = IsDate(fd.Value)
                                        Case "DAV:getcontentlength"
                                            '//length      
                                            If fd.Value >= 1024 Then
                                                workRow("length") = Str(fd.Value \ 1024) & "KB"
                                            Else
                                                workRow("length") = Str(fd.Value) & "B"
                                            End If
                                        Case "urn:schemas:httpmail:fromemail"
                                            '//FromEmail
                                            workRow("FromEmail") = fd.Value
                                        Case "urn:schemas:httpmail:fromname"
                                            '//FromName
                                            workRow("Fromname") = fd.Value
                                        Case "urn:schemas:httpmail:read"
                                            '//read
                                            'If fd.Value = True Then
                                            '    workRow("read") = "0"
                                            'ElseIf fd.Value = False Then
                                            '    workRow("read") = "1"
                                            'End If           
                                            workRow("read") = fd.Value
                                        Case "urn:schemas:httpmail:importance"
                                            workRow("importance") = fd.Value                                        'Case "urn:schemas:httpmail:priority"
                                            '    workRow("priority") = fd.Value                                    Case "urn:schemas:httpmail:hasattachment"
                                            If fd.Value = True Then
                                                atch = AttachmentCount(urlQueryFld & email & "/")
                                                atchFileName = AttachmentFileName(urlQueryFld & email & "/")
                                            Else
                                                atch = 0
                                                atchFileName = ""
                                            End If
                                            workRow("AttachmentCount") = atch
                                            workRow("AttachmentFilename") = atchFileName
                                    End Select
                                Next                            workRow("ID") = i
                                objDataTable.Rows.Add(workRow)
                                i = i + 1                        End With
      

  11.   

    rst.MoveNext()
                    Loop                ' Close the ADO object                rst.Close()
                    cnn.Close()
      ' Release memory used by object variables
                    rst = Nothing
                    cnn = Nothing IGetItemFromInbox=objDS
        End Function
          
     Function strFolderAndItemName(ByVal oldFolderAndItemName As String) As String
                Dim email As String
                Dim domTokens            domTokens = Split(oldFolderAndItemName, "%", -1, 1)
                email = Join(domTokens, "%25")            domTokens = Split(email, ":", -1, 1)
                email = Join(domTokens, "%3A")            domTokens = Split(email, "*", -1, 1)
                email = Join(domTokens, "%2A")            domTokens = Split(email, "|", -1, 1)
                email = Join(domTokens, "%7C")            domTokens = Split(email, "\", -1, 1)
                email = Join(domTokens, "_xf8fe_")            domTokens = Split(email, "<", -1, 1)
                email = Join(domTokens, "%3C")            domTokens = Split(email, ">", -1, 1)
                email = Join(domTokens, "%3E")            domTokens = Split(email, "?", -1, 1)
                email = Join(domTokens, "%3F")            domTokens = Split(email, Chr(34), -1, 1)
                email = Join(domTokens, "%22")            domTokens = Split(email, "/", -1, 1)
                email = Join(domTokens, "_xf8ff_")
                strFolderAndItemName = email
            End Function