none
Offfice 2016 emails ansprechen mit neuestem VS Community (VS 2015) RRS feed

  • Allgemeine Diskussion

  • Hallo

    Ich versuche Code von VS 2003 mit XP auf VS Community (VS 2015) zu ändern.

    Alle Dokumentationen bringen mich seit Tagen nicht weiter, da sie ältere VS wie 2010 oder älter betreffen und VS 2015 scheint anders zu sein.

    Hat jemand eine Beispielprogrammierung für Office365 und VS2015(Community) ???

    Ich bekomme es nicht einmal hin, dass er mein Code das aktive eMail im Outlook2016 erkennt.

    Hier mein alter Code :

        Private Sub Erledigt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Erledigt.Click
            ' Fehler
            On Error Resume Next    ' Fehler-Behandlung setzen --- beim Auslesen des eMails NOCHMALS GESETZT !!!
            Err.Clear()    ' Fehler löschen


            ' Klappt VB-Taskleiste wieder in unsichtbaren rechten Bereich
            Location = New Point(MeLocationUNSICHTBARBreite, MeLocationUNSICHTBARHoehe)


            ' TopMost festlegen (ob VB-Taskleiste nicht mehr über anderen Anwendungen liegt)
            If FormTop.Checked = True Then
                TopMost = True
            End If
            If FormTop.Checked = False Then
                TopMost = False
            End If


            ' Definition Outlook
            Dim oOutlookErledigt As New Microsoft.Office.Interop.Outlook.Application
            Dim oOutlookExplorerErledigt As Microsoft.Office.Interop.Outlook.Explorer
            Dim oOutlookMailItemErledigt As Microsoft.Office.Interop.Outlook.MailItem
            

    ' Definition Variablen
            Dim oActiveEMailSenderEmailAddress As String = "11111111111111111111"    ' eMail-Adresse des Anfragenden (Von)
            Dim oActiveEMailSenderSenderName As String = ""    ' Name des Anfragenden (Von)
            Dim oActiveEMailSenderSubject As String = ""    ' Betreff des Anfragenden
            Dim oActiveEMailSenderTo As String = ""    ' vom Anfragenden gesendet an
            Dim oActiveEMailSenderReceivedTime As String = ""     ' Erhalten am / um
            Dim oActiveEMailSenderBody As String = ""    ' eMail-Inhalt des Anfragenden
            Dim oActiveEMailSenderMarkiertes As String = ""    ' markierter Text im erhaltenen eMail - also Anredename usw
            Dim oActiveEMailNEUAnrede As String = ""    ' Herr Frau usw
            Dim oActiveEMailNEUBody As String = ""    ' neuer GesamtInhalt des eMails
            Dim oActiveEMailNEUBodyANHANG As String = ""    ' Anhang des neuen eMails - also Zusendungsdaten und Zusendungsinhalt
            Dim oActiveEMailNEUversendenVON As String = ""    ' VON: --- NICHT identisch mit welchem Konto versendet wird


            ' aktives Outlook-eMail auslesen
            oOutlookExplorerErledigt = oOutlookErledigt.ActiveExplorer
            On Error Resume Next    ' Fehler-Behandlung setzen
            oOutlookMailItemErledigt = CType(oOutlookExplorerErledigt.Selection.Item(1), Outlook.MailItem)    ' Zahl = xtes DER MARKIERTEN eMails von oben aus (1St=mark,=>dieses!)
            'If Err.Number = 0 Then
            oActiveEMailSenderEmailAddress = oOutlookMailItemErledigt.SenderEmailAddress    ' eMail-Adresse des Anfragenden (Von)
            MessageBox.Show(oActiveEMailSenderEmailAddress)
            oActiveEMailSenderSenderName = oOutlookMailItemErledigt.SenderName    ' Name des Anfragenden (Von)
            oActiveEMailSenderSubject = oOutlookMailItemErledigt.Subject    ' Betreff des Anfragenden
                ' ANFANG --- MEHRFACHE SUBJECT-ERGÄNZUNG RAUS !!!!!!!!!!!!!!!!!
                oActiveEMailSenderSubject = Replace(oActiveEMailSenderSubject, "Antwort vom Juwelenmarkt Gunar Mayer auf ==> ", "")
                oActiveEMailSenderSubject = Replace(oActiveEMailSenderSubject, "Ihre Zusendung: Angebot vom Juwelenmarkt Gunar Mayer ==> ", "")
                oActiveEMailSenderSubject = Replace(oActiveEMailSenderSubject, "Antwort auf ==> ", "")
                ' ENDE --- MEHRFACHE SUBJECT-ERGÄNZUNG RAUS !!!!!!!!!!!!!!!!!
                oActiveEMailSenderTo = oOutlookMailItemErledigt.To    ' vom Anfragenden gesendet an
                oActiveEMailSenderReceivedTime = CType(oOutlookMailItemErledigt.ReceivedTime, String)     ' Erhalten am / um
                oActiveEMailSenderBody = oOutlookMailItemErledigt.Body     ' eMail-Inhalt des Anfragenden
            'Else
            MessageBox.Show("eMail-Markierung stimmt nicht")
            'End If
            MessageBox.Show("1")
            ' Markiertes im aktiven Outlook-eMail auslesen
            Dim GMClassoActiveEMailMarkiertesErledigt As GMClass.eMailMarkiertes
            eMailMarkiertes.eMailMarkiertesKopieren()    ' eMailMarkiertesKopieren aufrufen, damit dortiges definiert wird 
            oActiveEMailSenderMarkiertes = eMailMarkiertes.oActiveEMailMarkiertes.Trim     ' ruft soeben def. Variablen-Inhalt ab + Trim
            GMClassoActiveEMailMarkiertesErledigt = Nothing


            ' externe Templates auslesen
            ' Erledigt-Text holen
            Dim StreamErledigt As New StreamReader("C:\Eigene-D\VS\GMClass\0-Allg-Erledigt.txt", System.Text.Encoding.UTF8)
            Dim sTextErledigt As String = StreamErledigt.ReadToEnd
            StreamErledigt = Nothing
            ' Abspann-Rundgang-Text holen
            Dim sTextAbspannRundgang As String = Nothing
            ' Abspann-Text KURZ holen
            Dim ReaderAbspann As New StreamReader("C:\Eigene-D\VS\GMClass\0-0-AbspannKURZ.txt", System.Text.Encoding.UTF8)
            Dim sTextAbspann As String = ReaderAbspann.ReadToEnd
            ReaderAbspann = Nothing


            ' mein eMail-Versender-Konto setzen (1@ggm1.de, x@ggm1.de) --- auf Null setzen wenn angekreuzt
            If eMail1ggm1de.Checked = True Then
                oActiveEMailNEUversendenVON = "1@ggm1.de"
            ElseIf eMailXggm1de.Checked = True Then
                oActiveEMailNEUversendenVON = "x@ggm1.de"
            End If
            If PlusEMailEmpfaenger.Checked = False Then
                oActiveEMailSenderEmailAddress = ""
            End If


            ' Anrede je nach RadioButton
            If Hr.Checked = True Then
                oActiveEMailNEUAnrede = "Sehr geehrter Herr " & oActiveEMailSenderMarkiertes & " !" & vbCrLf
            ElseIf Fr.Checked = True Then
                oActiveEMailNEUAnrede = "Sehr geehrte Frau " & oActiveEMailSenderMarkiertes & " !" & vbCrLf
            ElseIf Fam.Checked = True Then
                oActiveEMailNEUAnrede = "Sehr geehrte Familie " & oActiveEMailSenderMarkiertes & " !" & vbCrLf
            ElseIf Fa.Checked = True Then
                oActiveEMailNEUAnrede = "Sehr geehrte Damen und Herren !" & vbCrLf
            ElseIf Hallo.Checked = True Then
                oActiveEMailNEUAnrede = "Hallo und Guten Tag !" & vbCrLf
            End If


            ' BodyAntwort zusammenstellen --- auf Null setzen wenn angekreuzt
            oActiveEMailNEUBodyANHANG = "===========================================================" & vbCrLf &
               "eMail von : " & oActiveEMailSenderEmailAddress & vbCrLf &
               "(" & oActiveEMailSenderSenderName & ")" & vbCrLf &
               "Betreff : " & oActiveEMailSenderSubject & vbCrLf &
               "Gesendet an : " & oActiveEMailSenderTo & vbCrLf &
               "Erhalten am : " & oActiveEMailSenderReceivedTime & vbCrLf &
               "===========================================================" & vbCrLf & vbCrLf &
               oActiveEMailSenderBody
            If PlusAnfrageText.Checked = False Then
                oActiveEMailNEUBodyANHANG = ""
            End If
            oActiveEMailNEUBody = oActiveEMailNEUAnrede & sTextErledigt & vbCrLf & sTextAbspannRundgang & sTextAbspann & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf


            ' eMail erzeugen
            oOutlookMailItemErledigt = CType(oOutlookErledigt.CreateItem(0), Outlook.MailItem)
            With oOutlookMailItemErledigt
                .To = oActiveEMailSenderEmailAddress
                .CC = ""
                .BCC = ""
                .Subject = "Antwort vom Juwelenmarkt Gunar Mayer auf ==> " & oActiveEMailSenderSubject
                .Body = oActiveEMailNEUBody & oActiveEMailNEUBodyANHANG
                .Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceNormal
                .SentOnBehalfOfName = oActiveEMailNEUversendenVON    ' wenn x@ggm1.de gesetzt ==> eMail kommt beim Empfänger an mit ==> Von: 1@ggm1.de [mailto:1@ggm1.de] Im Auftrag von x@ggm1.de ((1@ggm1.de ist das Konto über welches gesendet wird, was aber erst über Office2007 über Parameter einstellbar ist))
                ' manuell über Konten  UND  über Parameter SentOnBehalfOfName  ==>  BEIDE SOLLTEN AUF GLEICHE eMAIL-ADRESSE GESETZT WERDEN
            End With


            'neues eMail Darstellen und Aktivieren
            oOutlookMailItemErledigt.Display()
            'oOutlookMailItemErledigt.Activate()    ' erzeugt LATE BINDING FEHLERMELDUNG


            ' Herr + eMail1ggm1de wieder retour setzen
            Hr.Checked = True
            eMail1ggm1de.Checked = True
            PlusAnfrageText.Checked = True
            PlusEMailEmpfaenger.Checked = True


            ' ALLES BEENDEN UND SCHLIESSEN
            oOutlookErledigt = Nothing
            oOutlookExplorerErledigt = Nothing
            oOutlookMailItemErledigt = Nothing
        End Sub

    Mittwoch, 3. August 2016 09:43

Alle Antworten

  • Hallo 7-7,

    'oOutlookMailItemErledigt.Activate()    ' erzeugt LATE BINDING FEHLERMELDUNG

    Wenn Deine Anwendung hier abstürzt, würdest Du die genaue Fehlermeldung anführen? Gibt es einen Fehler zu Beginn von Erledigt_Click? Hast Du Option Strict auf On gesetzt?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 4. August 2016 09:40
    Administrator
  • Hallo

    Das Problem ist dass gar nichts erfolgt.

    Projekt und Datei neu erstellen ergibt keine Fehler.

    Beim Start erfolgt die Meldung 

    "eMail-Markierung stimmt nicht"

    Dann Wechsel zum offenen Outlook.

    Ende OHNE FEHLERMELDUNG !!!

    Das bedeutet das die Code-Rubrik ' aktives Outlook-eMail auslesen   gar nicht erfolgt 

    Auch wenn ich die Error-Abfrage auskommentiere scheint es so zu sein dass mein Code das Outlook-Programm nicht erkennt bzw nicht auslesen kann.

    Wie als wenn mein Code einen falschen Verweis oder Imports hat.

    Hier meine Verweise, Imports:

    C:\Eigene-D\VS\GMClass\bin\GMClass.dll C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Excel.dll C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Outlook.dll C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Word.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Microsoft.VisualBasic.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Core.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.DataSetExtensions.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Deployment.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Drawing.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Windows.Forms.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.Linq.dll



    Imports GMClass
    Imports Word = Microsoft.Office.Interop.Word
    Imports Outlook = Microsoft.Office.Interop.Outlook
    Imports Excel = Microsoft.Office.Interop.Excel
    Imports System.IO    'StreamWriter uswImports System.Net
    Imports System.Text.RegularExpressions
    Imports System.Runtime.InteropServices
    Imports System.Security



    Ich weiß nicht wo ich anfangen soll.

    Habe schon neues Projekt erstellt, alten Code reinkopiert und alle Fehler beseitigt mit gleichem Ergebnis !

    Bitte um Hilfe

    Mayer


    • Bearbeitet 7-7 Sonntag, 7. August 2016 14:03
    Sonntag, 7. August 2016 14:01