Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Outlook Exchange

Forumthread: Outlook Exchange

Outlook Exchange
21.04.2024 11:06:32
Oisse
Hallo Zusammen,
ich versende von Excel aus über Windows-Mail Nachrichten über ein Exchange Konto.
Nun stellt Microsoft aber um auf "das neue Outlook" und damit funktioniert kein Exchange-Konto.
Wenn ich nun Nachrichten versenden möchte, muss ich die Internetseite aufmachen und mich anmelden.
Habt ihr bitte eine Lösung? Selbst wenn sie darin bestehen würde, die Internetseite per VBA aufzumachen, die Anmeldedaten einzugeben und dann eine neue Email zu erstellen, indem dann dort die entsprechenden Felder angesprochen werden.
Vielen Dank
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Exchange
22.04.2024 00:09:36
Firmus
Hallo Oisse,

poste doch mal deine heutige Lösung, damit Helferinteressenten eine Vorstellung bekommen wie das heute läuft.
Ich habe keine Vorstellung welchen Code du aktuell verwendest.

Mit Emails per VBA via Outlook aus XLS zu versenden gibt es viele Beispiele bei Herber/im Netz.
Exchange ist m. E. nur eine kleine Einstellungsarbeit, abweichend von Standalone-Outlook.

Welche Outlook-Version bekommst du?
(Eigentlich sollte es von Outlook2013 bis O365 "fast" identisch laufen - aber wer weiß das schon.)

Schau dir schon mal das Thema "Early Bind" vs. "Late Bind" für die Programierung an - fürs Verständnis.
Favorit: Early Bind, weil damit das Programmieren bequemer wird.

Gruß,
Firmus
Anzeige
AW: Outlook Exchange
22.04.2024 12:52:57
Oisse
Hallo Firmus,
danke für die Antwort.
Der Code ist eigentlich ganz normal:


Function EMailVersendenOutlookOhneAnhang(ByVal Empfänger As String, Text As String, Betreff As String, Optional BCC As String)

Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)

.GetInspector.Display
olOldBody = .HTMLBody
.To = Empfänger
.BCC = BCC
.Subject = Betreff
.HTMLBody = Text


End With
End Function

Es öffnete sich dann Windows-Mail und ich wählte das Exchange-Konto aus. Dann wurde dort alles eingefügt, ich ging auf Senden und das wars.
Hat immer tadellos funktioniert.
Aber jetzt öffnet sich das "neue Outlook" und es funktioniert nicht mehr, weil ich da das Exchange Konto schon gar nicht einrichten kann.
Ich müsste also jetzt über den Browser die Seite aufmachen und dort alles händisch eintragen, was ziemlich aufwändig ist.
Daher bitte ich auch um eine Lösung.
Gruß Oisse
Anzeige
AW: Outlook Exchange
22.04.2024 13:16:07
schauan
Hallöchen,

Aber jetzt öffnet sich das "neue Outlook" und es funktioniert nicht mehr, weil ich da das Exchange Konto schon gar nicht einrichten kann.
... nicht nur. Das neue Outlook - damit meine ich nicht 365 - hat auch kein VBA mehr.

Du kannst aber versuchen, eine Mail per Hyperlink zu starten. Sollte per Formel oder auch Eintrag als Hyperlink funktionieren.
Anzeige
AW: Outlook Exchange
23.04.2024 15:43:07
Oisse
Hallo schauan,
danke für die Nachricht. Wie meinst Du das mit dem Hyperlink? Wenn ich Windows Mail per Hyperlink öffnen möchte bräuchte ich die Exe-Datei bzw. den Pfad dazu. Den finde ich aber nirgends. Hab da I-net schon rauf und runter gesucht und ausprobiert, aber Fehlanzeige.
Wenn ich die Browserseite von Outlook öffnen muss, dann muss ich mich ja zunächst mit Email-Adresse und Passwort anmelden. Anschließend die entsprechenden Felder füllen. Aber wie spreche ich das ganze in Vba an und fülle es aus?
Gibt es da schon entsprechende Codes?
Anzeige
AW: Outlook Exchange
23.04.2024 19:26:18
schauan
Hallöchen,

der Link könte so aussehen:
=HYPERLINK("mailto:"&A1&"?" &"cc="&A2 &"&subject="&A3 &"&body="&A4; "Email-Link")

Allerdings ist der in Summe der Zeichen sehr begrenzt - 255 - die Anzahl Zeichen der Zellen muss mitgerechnet werden.
Anzeige
AW: Outlook Exchange
23.04.2024 19:40:30
schauan
... und dann könntest Du auch ohne Outlook senden, entweder mit einem anderen Mailprogramm oder direkt, google mal mit den Stichworten
excel 365 smtp cdo email
AW: Outlook Exchange
24.04.2024 11:28:40
Oisse
Servus schauan,
ich habe nun folgenden Code gefunden und mit meinen Daten getestet (im Beispiel natürlich andere).
Allerdings kommt die Fehlermeldung: "Der Transport konnte keine Verbindung zum Server herstellen"
Zur Erinnerung: es ist ein Exchange-Konto. Muss hier was anderes eingestellt werden?


Sub Emailen()

Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String

Set CDO_Mail = CreateObject("CDO.Message")
'On Error GoTo Error_Handling

Set CDO_Config = CreateObject("CDO.Configuration")
CDO_Config.Load -1

Set SMTP_Config = CDO_Config.fields

With SMTP_Config
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "eas.test.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587 '25 '587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "HansWurst@test.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "2Wurstsemmel"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With

With CDO_Mail
Set .Configuration = CDO_Config
End With

Dim i As Integer
i = 2
While Sheets("Data").Cells(i, 1) > ""
strSubject = "Z-Reporti"
strFrom = "HansWurst@test.com"
strTo = Sheets("Data").Cells(i, 4)
strCc = ""
strBcc = ""
strBody = "xcvjlxcv ;lkjladsfgdafg "

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
i = i + 1
Wend
End Sub
Anzeige
AW: Outlook Exchange
24.04.2024 21:06:49
schauan
Hallöchen,

hier mal der code, wie er bei mir funktioniert. Da hab ich auch zwei Links drin zu weiteren Informationen.
Folgende prinzipielle Unterschiede habe ich zu Deinem Code:
1)
Das habe ich nicht verwendet:
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.fields
---> direkt programmiert auf Fields("....") bzw. mit den entsprechenden Konstanten
und es geht auch ohne Timeout.
2)
Du müsstest den Port 25 nehmen, steht glaube auch in einem verlinkten Beitrag nebst Begründung.
3)
der Verweis ...
Habe allerdings kein Exchange, sodass ich da nichts testen kann. :-(

und noch ein Hinweis:
Wenn das klappt, dann nimm Dich als Cc mit rein bzw. prüfe, ob und wo ggf. die gesendeten zu finden sind, falls Du die brauchst ...


Private Const cdoSendUsingPort = 2

Private Const cdoBasic = 1
Private Const cdoNTLM = 2
' The docmentation of all these settings is available at
' https://msdn.microsoft.com/en-us/library/ms872853.aspx
Private Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Private Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Private Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Private Const cdoSMTPUseSSL = "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
Private Const cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Private Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Private Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
'https://codekabinett.com/rdumps.php?Lang=1&targetDoc=email-versenden-access-vba-cdo

Public Sub SendSimpleCDOMail()
'Verweis auf Microsoft CDO for Windows 2000 ...
Dim mail As CDO.Message
Dim config As CDO.Configuration
'Mail-Objekt und Konfiguration setzen
Set mail = CreateObject("CDO.Message")
Set config = CreateObject("CDO.Configuration")
config.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
config.Fields(cdoSMTPServer).Value = "smtp.ionos.de"
'bea: aus Office / Windows ueber Port 25 senden!
config.Fields(cdoSMTPServerPort).Value = 25
config.Fields(cdoSMTPAuthenticate).Value = cdoBasic
config.Fields(cdoSMTPUseSSL).Value = True
config.Fields(cdoSendUserName) = "irgendwer@irgendwo.de"
config.Fields(cdoSendPassword) = "geh-heim"
config.Fields.Update
Set mail.Configuration = config
With mail
.To = "kennichden@dadorten.de"
.From = "irgendwer@irgendwo.de"
.Subject = "EMail-Betreff"
.TextBody = "EMail - Body"
'.AddAttachment "meinedatei"
.Send
End With
Set config = Nothing
Set mail = Nothing
End Sub
Anzeige
AW: Outlook Exchange
23.04.2024 11:18:38
Firmus
Hallo Oisse,

angeregt durch Schauans Beitrag habe ich mal gegoogled "ist das neue outlook ohne vba"
Ergebnis ernüchernd: https://www.borncity.com/blog/2023/10/16/neue-outlook-app-als-problem-der-ansatz-schneidet-alle-com-vba-lsungen-ab/#:~:text=16.%20Oktober%202023&text=Durch%20den%20Wegfall%20der%20COM,und%20VBA%2DL%C3%B6sungen%20nicht%20mehr.

Ich selbst arbeite mit vielen kleinen, handmade tools um meine Abläufe zu vereinfachen und zu beschleunigen - mal sehen .....
O365 werde ich solange behalten, bis es nicht mehr unterstützt wird.

Sorry - Bad news
Firmus
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige