Fragensteller
Offfice 2016 emails ansprechen mit neuestem VS Community (VS 2015)

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
- Typ geändert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 6. September 2016 13:40 Keine bestätigte Lösung
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.
- Bearbeitet Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 4. August 2016 12:26 stilistische Korrektur
-
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