Avatar billede spyrodrag Nybegynder
19. august 2004 - 12:31 Der er 11 kommentarer og
1 løsning

Send E-mail VB.net

Hejsa.
Jeg har brug for et program, som kan sende en E-mail og måle hvor lang tid det tager før E-mailen er modtaget.

Nogen der kan hjælpe?

Venlig hilsen,
Martin
Avatar billede arne_v Ekspert
19. august 2004 - 12:37 #1
Det er utroligt nemt at sende en email:

SmtpMail.SmtpServer = "mailserver"
SmtpMail.Send("fra", "til", "subject", "body")

(du skal importere System.Web.Mail namespace)

[streng værdierne skal naturligvis erstattes af rigtige værdier]
Avatar billede arne_v Ekspert
19. august 2004 - 12:37 #2
Det er straks meget sværere at måle tiden.

Hvilken adgang har du til inbox hos modtager ?
Avatar billede spyrodrag Nybegynder
19. august 2004 - 12:38 #3
Ja, men så mangler du bare den svære del ;) den skal jo også fortælle hvor lang tid det tager før e-mailen er modtaget.

Venlig hilsen,
Martin.
Avatar billede spyrodrag Nybegynder
19. august 2004 - 12:39 #4
Ja, det har jeg.

Men! Det skulle efter sigende være muligt at bede om at få en rapport på forsendelsen.

Venlig hilsen,
Martin.
Avatar billede arne_v Ekspert
19. august 2004 - 12:47 #5
Du kan ikke regne med at få alle mailservere til at sende en confirmation
ved modtagelse.

Du kan heller ikke regne med at få alle mail klientere / brugere til at sende
en confirmation ved læsning.

Hvis vi ikke snakker helt generel SMTP men en specifik mail server og/eller
en specifik mail klient, så kan der måske være nogle muligheder.
Avatar billede spyrodrag Nybegynder
19. august 2004 - 12:50 #6
Mailserveren er MS Exchange, og klienterne bruger MS Outlook.
Rapporterne er mulige, men jeg kan godt sende mailen til mig selv, for at teste hastigheden på serveren.
Der skal stadig være en timer funktion.

Venlig hilsen,
Martin.
Avatar billede arne_v Ekspert
19. august 2004 - 12:58 #7
Så du skal sende en email til en Exchange server og du skal læse samme email
fra samme Exchange server og måle tiden på det ? Enten som wall time eller
i noget rapport som Exchange på en eller anden måde laver.
Avatar billede spyrodrag Nybegynder
19. august 2004 - 13:17 #8
Præcis.

Der skal føres statastik over svarstiden.
Avatar billede arne_v Ekspert
28. august 2004 - 18:57 #9
Jeg har ihvertfald ingen anelse om det.
Avatar billede spyrodrag Nybegynder
12. oktober 2004 - 15:00 #10
smid et svar... :)
Jeg har næsten løst opgaven.

Opgaven er noget i stil med:

Sub Main()
        Dim SendMailItem As MailItem
        Dim oApp As Outlook.Application = New Outlook.Application

        Dim oNS As Outlook.NameSpace = oApp.GetNamespace("mapi")
        oNS.Logoff()
        oNS = Nothing
        oNS.Logon("mthogersen", "etellerandet", False, True) ' TODO:
        oNS.Logoff()
        oNS = Nothing
        SendMailItem = oApp.CreateItem(0)
        SendMailItem.To = Command()
        SendMailItem.Body = SendMailItem.SentOn.Hour & " " & SendMailItem.SentOn.Minute & " " & SendMailItem.SentOn.Millisecond
        SendMailItem.OriginatorDeliveryReportRequested = True
        SendMailItem.Send()
        ReceiveMail()
End Sub

Public Sub ReceiveMail()
        ' Create Outlook application.
        Dim oApp As Outlook.Application = New Outlook.Application

        ' Get Mapi NameSpace.
        Dim oNS As Outlook.NameSpace = oApp.GetNamespace("mapi")
        oNS.Logon("<bruger>", "<password>", False, True) ' TODO:

        ' Get Messages collection of Inbox.
        Dim oInbox As Outlook.MAPIFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
        Dim oItems As Outlook.Items = oInbox.Items
        Console.WriteLine("Total : " & oItems.Count)

        ' Get unread e-mail messages.
        oItems = oItems.Restrict("[Unread] = true")

        Console.WriteLine("Total Unread : " & oItems.Count)

        ' Loop each unread message.
        Dim oMsg As MailItem
        Dim i As Integer

        For i = 1 To oItems.Count
            oMsg = oItems.Item(i)
            Console.WriteLine(i)
            'Console.WriteLine(oMsg.SenderName)
            Console.WriteLine(oMsg.Subject)
            'Console.WriteLine(oMsg.ReceivedTime)

            'got the receive time
            Console.WriteLine(oMsg.Body)

            Console.WriteLine("---------------------------")
        Next

        ' Log off.
        oNS.Logoff()

        ' Clean up.
        oApp = Nothing
        oNS = Nothing
        oItems = Nothing
        oMsg = Nothing
End Sub

Venlig hilsen,
Martin.
Avatar billede arne_v Ekspert
12. oktober 2004 - 15:24 #11
kommer her

(selvom jeg jo kun har hjulpet med den ene del af spørgsmålet)
Avatar billede spyrodrag Nybegynder
13. oktober 2004 - 08:15 #12
Du fortjener de points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester