exchange   zodpovězená otázka

ASP.NET WebForms

Dobrý den,

mohl by mi někdo poradit jak stáhnout maily z exchange serveru? (snad se tomu říká parsing?), už jsem z toho zoufalý, nikde nic, jenon send, send...

Pavel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

zkousel jsem to pres MSXML2.ServerXMLHTTP60, ale hlasi mi to chybu: 440 Login Timeout.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

nakonec jsem sesmolil takovyto kod:

do schranky se dostanu, ale kdyz chci vypsat zpravy tak to hlasi "forbidden"

muze mi nekdo poradit?

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim oXmlHttp As New MSXML2.ServerXMLHTTP60
        Dim xmlDOMParams As New System.Xml.XmlDataDocument
        Dim xmlDOMParams1 As New System.Xml.XmlDataDocument
        Dim xmlDOMParamsAttachement As New MSXML2.DOMDocument60
        Dim xmlNdLstDonation, xmlNdLstDonation1
        Dim str
        Dim XmlNode As System.Xml.XmlNode = Nothing
        Dim ResponseText As String = ""

        With oXmlHttp
            'Open and read all the mails of inbox'''

            '.open("PROPFIND",             

            .open("PROPFIND", "adresa", False, "jmeno", "heslo")
            .setRequestHeader("Depth", "1")
            .setRequestHeader("Content-type", "xml")
            .send()
            Debug.Write(.responseBody)
            Debug.Write(.responseXML)
            Str = oXmlHttp.responseText
            ''Load the read mails into XML document'''

            xmlDOMParams.LoadXml(str)
            Debug.Write(str)
            'Get the list of text descriptions of all the mails'''

            xmlNdLstDonation1 = xmlDOMParams.GetElementsByTagName("a:href")
            Debug.Write(xmlNdLstDonation1)


            For iNode = xmlNdLstDonation1.Count - 1 To 0 Step -1
                XmlNode = xmlNdLstDonation1.Item(iNode)
                oXmlHttp.open("X-MS-ENUMATTS", "adresa", False, "jmeno", "heslo")
                oXmlHttp.setRequestHeader("Depth", "1")
                oXmlHttp.setRequestHeader("Content-type", "xml")
                oXmlHttp.send()
                ResponseText = oXmlHttp.responseText
                xmlDOMParams1.LoadXml(ResponseText)
                Debug.Print(ResponseText)
            Next





            xmlNdLstDonation = xmlDOMParams.GetElementsByTagName("e:textdescription")
            Debug.Write(xmlNdLstDonation)
            'Get the List of Subjects of all the mails'''

            xmlNdLstDonation1 = xmlDOMParams.GetElementsByTagName("d:subject")
            Debug.Write(xmlNdLstDonation1)
        End With


    End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pomoci tridy TcpClient se muzete pripojit na postovni server.

Pomoci tridy networkstream posilate a ctete buffer.

Parsing emailove zdroje zpravy si musite udelat sam.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

dik, ale nevim jak to pouzit, asi jsem lama :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Priklad funkce pro pripojeni na postovni server pres POP3.

Timto zpusobem muzete komunikovat s mail serverem. Staci dopsat dalsi funkce pro POP3 prikazi LIST TOP RETR STATS QUIT atd.

Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

'vpripade uspesneho prihlaseni +OK
respone.write(ConnectToServer("192.168.3.104"),110,"muj_username","moje_heslo")

End Sub

Public command As String
Public bData As Byte()
Public ch_TcpClient As TcpClient
Public ch_NetStream As NetworkStream
Public ch_ReadStream As StreamReader

        Public Function ConnectToServer(ByVal pop3host As String, ByVal port As Integer, ByVal user As String, ByVal pwd As String) As String
            ' vytvoreni POP3 pripojeni
            ch_TcpClient = New TcpClient(pop3host, port)

            Try
                ' incializace
                ch_NetStream = ch_TcpClient.GetStream()
                ch_ReadStream = New StreamReader(ch_TcpClient.GetStream())
                ch_ReadStream.ReadLine()

                ' odeslani prihlasovaciho jmena
                command = "USER " & user & "" & Chr(13) & "" & Chr(10) & ""
                bData = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray())
                ch_NetStream.Write(bData, 0, bData.Length)
                ch_ReadStream.ReadLine()
                ' odelsani hesla
                command = "PASS " & pwd & "" & Chr(13) & "" & Chr(10) & ""
                bData = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray())
                ch_NetStream.Write(bData, 0, bData.Length)
                ch_ReadStream.ReadLine()
            Catch err As InvalidOperationException
                Return ("Error: " + err.ToString())
            End Try
            Return "+OK"
        End Function

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

diky moc, ale bohuzel mi to spravce pres pop3 nedovoli, jedine imap4, a to asi pomoci TcpClient nepujde ze?

Pavel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

http://semichaos.com/articles/aspnet1/em...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

diky, konecne neco co mi funguje!!!

snad uz z toho ty maily nejak dostanu :-)

Pavel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

nedostal :-(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud chcete programovat pro Exchange, nejlepší je začít na oficiálním webu: http://msdn.microsoft.com/en-us/exchange... .

Sada příkladů je pak na SDK, http://msdn.microsoft.com/cs-cz/library/...,EXCHG.80).aspx .

nahlásit spamnahlásit spam 0 odpovědětodpovědět

dik za info, zkusim to prostudovat :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback