Termin in Outlook, mit mehreren Konten, über Visual Studio eintragen

  • Outlook

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von dejanstar.

    Termin in Outlook, mit mehreren Konten, über Visual Studio eintragen

    Hallo zusammen

    Ich will über eine Form in Visual Basic einen Termin im Outlook eintragen.
    Das klappt auch mit diesem Code einwandfrei:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Dim OutApp
    3. Dim apptOutApp
    4. OutApp = CreateObject("Outlook.Application")
    5. apptOutApp = OutApp.CreateItem(1)
    6. With apptOutApp
    7. .Start = "12.04.2015" & " 18:00"
    8. 'Termininfo
    9. .Subject = "Test"
    10. 'oder der Betreff steht in der Spalte rechts von den Terminen
    11. 'Zusätzlicher Text
    12. .Body = "Text"
    13. 'ort
    14. .Location = "Testort"
    15. .Duration = "19"
    16. 'Erinnerung1
    17. .ReminderMinutesBeforeStart = 10
    18. 'mit Sound :-)
    19. .ReminderPlaySound = True
    20. 'Erinnerung wiederholen
    21. .ReminderSet = True
    22. 'Termin speichern
    23. .Save()
    24. End With
    25. apptOutApp = Nothing
    26. OutApp = Nothing
    27. MsgBox("Alles gut")
    28. End Sub


    Wenn ich aber mehrere Konten im Outlook habe klappt das nicht, weil ich ja angeben muss in welches Konto ich den Termin speichern will.
    Ich habe herausgefunden das dass mit Outlook.Namespace geht und habe folgenden Code ausprobiert:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Dim OutApp
    3. Dim apptOutApp
    4. OutApp = CreateObject("Outlook.Application")
    5. Dim myNameSpace As Microsoft.Office.Interop.Outlook.NameSpace
    6. myNameSpace = OutApp.GetNamespace("MAPI")
    7. myNameSpace.Logon("Email-Adresse", "MeinEmailPasswort", False, False)
    8. apptOutApp = OutApp.CreateItem(1)
    9. With apptOutApp
    10. .Start = "12.04.2013" & " 18:00"
    11. 'Termininfo
    12. .Subject = "Test"
    13. 'oder der Betreff steht in der Spalte rechts von den Terminen
    14. 'Zusätzlicher Text
    15. .Body = "Text"
    16. 'ort
    17. .Location = "Testort"
    18. .Duration = "19"
    19. 'Erinnerung1
    20. .ReminderMinutesBeforeStart = 10
    21. 'mit Sound :-)
    22. .ReminderPlaySound = True
    23. 'Erinnerung wiederholen
    24. .ReminderSet = True
    25. 'Termin speichern
    26. .Save()
    27. End With
    28. apptOutApp = Nothing
    29. OutApp = Nothing
    30. myNameSpace = Nothing
    31. MsgBox("Alles gut")
    32. End Sub


    Bekomme aber eine Fehlermeldung:
    System.Runtime.InteropServices.COMException
    Additional information: Der Server steht nicht zur Verfügung. Falls dieser Zustand fortbesteht, wenden Sie sich bitte an Ihren Administrator.

    Was mache ich falsch?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dejanstar“ ()

    Bei der von Dir gezeigten Variante, benötigst Du das Password von jedem Anwender. Diese solltest Du aus Datenschutzgründen nicht haben. Zugriff auf eine Mailbox hat nur der Anwender.
    Des Weiteren, wie willst Du eine Änderung des Termines gewährleisten. Bei einzelnen Termine, müsstest Du dann ja auch wieder in jeden Account rein, um dort die Änderung durchzuführen. Bei ein Besprechung macht dies die Änderung direkt.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).