.
Anmeldung | Registrieren | Hilfe
in Suchen

Email über Outlook, verschiedene Versionen, versenden

Letzter Beitrag 31. Aug 2010 12:09 von Bernd. 4 Antworten.
Seite 1 von 1 (5 Treffer)
Beiträge sortieren: Zurück Weiter
  • 13. Jul 2010 8:44

    • Bernd
    • Top 25 Mitwirkender
      Männlich
    • Registriert am 10. Jan 2009
    • Weißbach
    • Beiträge 107
    • Punkte 1.420

    Email über Outlook, verschiedene Versionen, versenden

    Hallo Leute,

    ich möchte aus einer Applikation (VB.NET) Emails über Outlook erstellen und versenden. Die Mitarbeiter sollen die Möglichkeit bekommen, einen Datensatz aus einer DB-Anwendung an Outlook zu übergeben, zu bearbeiten und evtl. noch Mailadressen hinzuzufügen.

    Nun habe ich im hier und im Netz einige Dinge und Anleitungen gefunden. Es muss eben die Outlook Version im Projekt hinzugefügt (ein Verweis auf die Com) werden und genau hier liegt mein Problem!

    Wir haben in der Fa. natürlich mehrere Outlook Versionen (2003, 2007, 2010).

    Kann ich mehrere Versionen im Projekt hinzufügen, wenn ja, wie mache ich das? Ich habe Office 2010 auf der Maschine.

    Danke für Eure Hilfe

    Bernd

    ..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o)
    Sprache: VB.NET 2008
    Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch..
    Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
    • IP-Adresse ist Registriert
  • 13. Jul 2010 12:07 Antwort zu

    • klaus_b
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 28. Jan 2008
    • Waldkraiburg
    • Beiträge 710
    • Punkte 11.415
    • Moderator

    Email über Outlook, verschiedene Versionen, versenden

    Hallo Bernd,

    Ob du mehrer verschiedenen Versionen des COM-Objekts hinzufügen kannst, weis ich nicht.

    Da auf der Zielmaschine aber überhaupt Outlook installiert sein muss damit das ganze funktioniert, könntest du doch die installierte Version ermitteln und dann das COM-Objekt zur Laufzeit erzeugen. Das Ermitteln der installierte Version geht AFAIK nur mit einer Abfrage der Registry. Um keine UAC-Meldung zu generieren, wurd ich das in CurrentUser abfragen. Dann ermittelst du die höchste Installierte Version.
    11.0 = 2003
    12.0 = 2007
    14.0 = 2010

    Der komplette Registrypfad für Outlook 2010 währe demnach:
    HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook

    Wenn du das ermittelt hast, könntest du doch das COM-Object auf Basis der installierten Version erzeugen.

    Servus,
    Klaus

    klaus_b@.NET
    Alles was an .NET und C# Spass macht, ... oder manchmal auch nicht.
    • IP-Adresse ist Registriert
  • 13. Jul 2010 14:11 Antwort zu

    • Martin Hey
    • Top 50 Mitwirkender
      Männlich
    • Registriert am 08. Mrz 2010
    • Dresden
    • Beiträge 53
    • Punkte 880

    Email über Outlook, verschiedene Versionen, versenden

    Hi Bernd,

    ist nicht die jeweils aktuelle Outlook-Version unter "Outlook.Application" registriert? Dann könnte man doch mit CreateObject und COM die aktuelle Version einfach laden. Ist vielleicht einen Versuch wert. Ich hab leider nur C# Code, aber damit hab ich eine Referenz auf Outlook bekommen können.

    dynamic outlookApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application"));


    Grüße

    Martin
    Sometimes when I'm alone, I google myself.

    Blog: http://www.uniquesoftware.de/blog/de
    Website: http://www.uniquesoftware.de
    • IP-Adresse ist Registriert
  • 14. Jul 2010 9:37 Antwort zu

    • Bernd
    • Top 25 Mitwirkender
      Männlich
    • Registriert am 10. Jan 2009
    • Weißbach
    • Beiträge 107
    • Punkte 1.420

    Email über Outlook, verschiedene Versionen, versenden

    Hey Martin,

    ja, Du hast mal wieder Recht! Es geht so:

    Friend Sub SendMail(ByVal Betreff As String, ByVal Body As String, Optional ByVal Empfaenger As String = "testmai@test.com")
            Dim objOutlook As Object
            Dim objOutlookMsg As Object
            Const olMailItem = 0
            Const olBCC = 3
            Const olImportanceHigh = 1
            Const olCC = 2
            Const olTo = 1
    
    
            objOutlook = CreateObject("Outlook.Application")
    
            objOutlookMsg = objOutlook.CreateItem(olMailItem)
    
            With objOutlookMsg
                Dim objOutlookRecip As Object = .Recipients.Add(Empfaenger)
                objOutlookRecip.type = olTo
                .Subject = Betreff
                .Body = Body
                .Importance = olImportanceHigh
                .Display() ' use  .send() to send
            End With
            objOutlookMsg = Nothing
            objOutlook = Nothing
        End Sub

    Zugegeben, der Code ist nicht von mir! Habe diesen "Schnipsel" im Netz entdeckt und eingebaut. Scheint mit allen Outlook-Versionen zu funktionieren.

    Werde das noch testen und Ergebnis hier posten.

    Danke Euch
    Bernd


    ..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o)
    Sprache: VB.NET 2008
    Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch..
    Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
    • IP-Adresse ist Registriert
  • 31. Aug 2010 12:09 Antwort zu

    • Bernd
    • Top 25 Mitwirkender
      Männlich
    • Registriert am 10. Jan 2009
    • Weißbach
    • Beiträge 107
    • Punkte 1.420

    Email über Outlook, verschiedene Versionen, versenden

    Antworten
    Bernd:

    Hey Martin,

    ja, Du hast mal wieder Recht! Es geht so:

    Friend Sub SendMail(ByVal Betreff As String, ByVal Body As String, Optional ByVal Empfaenger As String = "testmai@test.com")
            Dim objOutlook As Object
            Dim objOutlookMsg As Object
            Const olMailItem = 0
            Const olBCC = 3
            Const olImportanceHigh = 1
            Const olCC = 2
            Const olTo = 1
    
    
            objOutlook = CreateObject("Outlook.Application")
    
            objOutlookMsg = objOutlook.CreateItem(olMailItem)
    
            With objOutlookMsg
                Dim objOutlookRecip As Object = .Recipients.Add(Empfaenger)
                objOutlookRecip.type = olTo
                .Subject = Betreff
                .Body = Body
                .Importance = olImportanceHigh
                .Display() ' use  .send() to send
            End With
            objOutlookMsg = Nothing
            objOutlook = Nothing
        End Sub

    Zugegeben, der Code ist nicht von mir! Habe diesen "Schnipsel" im Netz entdeckt und eingebaut. Scheint mit allen Outlook-Versionen zu funktionieren.

    Werde das noch testen und Ergebnis hier posten.

    Danke Euch
    Bernd




    Also, der oben genannte Code funktioniert mit allen Outlook-Versionen von 2003 bis 2010.

    Gruß vom Bernd

    ..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o)
    Sprache: VB.NET 2008
    Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch..
    Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
    • IP-Adresse ist Registriert
Seite 1 von 1 (5 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum