Anzeige
Archiv - Navigation
1828to1832
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Email ohne Outlook versenden

Email ohne Outlook versenden
15.05.2021 08:07:21
Oisse
Guten Morgen zusammen,
ich möchte gerne Emails per vba versenden und zwar so, dass es auch ohne outlook funktioniert, denn nicht jeder hat Outlook und Outlook unterstützt keinen Zugriff auf Exchange Server.
Nun habe ich folgende Funktion:

Function EMailVersendenPort(ByVal eMailMa As String, eMailKunde As String, Betreff As String, Text As String, Server As String, Port As Integer, User As String, password As String)  ', CDateiName As String)
Dim objEMail, body
Dim schema As String
schema = "http://schemas.microsoft.com/cdo/configuration/"
Set objEMail = CreateObject("CDO.Message")
With objEMail
.From = eMailMa
.To = eMailKunde
.Subject = Betreff
.Textbody = Text
'.AddAttachment CDateiName
With .Configuration.Fields
.Item(schema & "sendusing") = 2
.Item(schema & "smtpserver") = Server
.Item(schema & "smtpserverport") = Port
.Item(schema & "smtpauthenticate") = 1
.Item(schema & "smtpusessl") = True   'bei GoogleMail erforderlich!
.Item(schema & "sendusername") = User
.Item(schema & "sendpassword") = password
End With
.Configuration.Fields.Update
If MsgBox("Soll die E-Mail jetzt versendet werden?", vbYesNo, "E-Mail versenden?") = vbYes Then
.send
Else
Exit Function
End If
End With
Set objEMail = Nothing
If Err.Number  0 Then
MsgBox Err.Number & vbCrLf & Err.Description
Else
MsgBox "Mail wurde erfolgreich versendet."
End If
On Error GoTo 0
End Function
Leider funktioniert das aber nicht (mehr).
Ich habe mich gerade bei meinem Email Account eingeloggt und die Zugangsdaten stimmen.
Es ist der Server: "smtp.web.de" und der Port 587.
Beim Googlekonto kam gleich eine Sicherheitswarnung, dass versucht wurde auf das Konto zuzugreifen von einer App, die Google nicht bekannt ist.
Bei web.de kommt die Meldung: Der Transport konnte keine Verbindung zum Server herstellen.
Die gleiche Meldung kommt, wenn ich (was ich eigentlich will), über einen Exchange-Server Emails versenden will.
Kann bitte jemand helfen?
Gruß Oisse

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email ohne Outlook versenden
15.05.2021 09:55:29
mumpel
Hallo!
Die neuen Exchange-Versionen unterstützen CDO nicht mehr, Web.de und GMail dürften das auch nicht unterstützen.. Suche mal nach Exchange Web Services. (EWS), vielleicht geht es ja damit.
Gruß, René
AW: Email ohne Outlook versenden
15.05.2021 10:44:39
Herbert_Grom
Hallo Oisse, hallo René,
soeben habe ich aus Excel 2019 heraus eine eMail via Google versandt und es hat ordnungsgemäß funktioniert! Hier mein Code dafür:

Sub eMail_via_GMail()
Dim iMsg As Object, iConf As Object, strbody As String, Flds As Variant
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxx@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxx"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
strbody = "Hallo xxx," & vbNewLine & vbNewLine & "weiterer Text"
With iMsg
Set .Configuration = iConf
.Subject = ".Subject"
.To = "xxxx@t-online.de"
.From = """Herbert Grom"" "
.TextBody = strbody
.Send
End With
Set iConf = Nothing
Set iMsg = Nothing
End Sub
Servus
Anzeige
AW: Email ohne Outlook versenden
15.05.2021 10:57:29
mumpel
Vielleicht hat "Oisse" eine App-Sperre (bei Microsoft heisst das "App-ID")? Das sind Sicherheitsfunktionen die das unerwünschte Senden von Emails über Apps und PC-Anwendungen verhindern soll. Eine Funktion die z.B. bei der Telekom bis heute fehlt.
AW: Email ohne Outlook versenden
15.05.2021 13:30:54
Oisse
Vielen Dank an euch zwei,
nachdem ich bei Google den Zugriff durch weniger sichere Apps erlaubt habe, funktioniert bei mir auch das senden über Google.mail einwandfrei.
Aber die Fehlermeldung kommt nach wie vor beim Sendeversuch an einen Exchange Server. Da ich den Port nicht kenne, habe ich verschiedene ausprobiert, z.B. 465, 587 oder 25. Könnte es daran liegen?
Kann man denn nicht zumindest das Mailprogramm von Windows 10 per vba starten, dort per vba die Absendeadresse usw. eintragen, sodass man nur noch den Senden - Button drücken muss?
Ich habe versucht, das zu recherchieren, was du mir geraten hast, bezüglich EWS-Anwendungen und ich versteh überhaupt nix.
Anzeige
AW: Email ohne Outlook versenden
15.05.2021 19:50:41
mumpel
Meinst Du mit "das Mailprogramm von Windows 10" Windows-Mail? Wenn ja, das geht nicht. "Richtig fernsteuern" lassen sich nur Outlook, Lotus-Notes (heute HCL Notes) und GroupWise. Für Thunderbird kann man zwar eine Email erstellen, aber nicht automatisiert senden. Windows-Mail aber gehört in die digitale Tonne.
Was Exchange betrifft habe ich Dich ja schon auf die Exchange Web Services (EWS) hingewiesen. Damit habe ich mich aber noch nicht befasst (mangels Exchange).
AW: Email ohne Outlook versenden
15.05.2021 20:53:51
Oisse
Hallo Mumpel und Danke für Deine Hilfe.
Ich habe nun eine für mich brauchbare Lösung gefunden. Damit kann man zwar keine Anhänge versenden aber einfachen Text und das reicht mir.
Bei Windows-Mail kann man ja ein Exchange-Konto anlegen und von dort aus funktioniert der E-Mail-Verkehr auch tadellos.
Wenn ich also von Excel aus die drei Parameter schon übergeben kann, ist ja schon viel gewonnen.
Dem Text kann man halt leider keine Zeilenumbrüche mitgeben. Da muss man dann eben per Hand nachbessern. Oder kennst Du hier eine Lösung?

Function Email_senden(ByVal strEmailadresse$, strSubject$, strBody$)
'Dim strEmailadresse As String
'Dim strCc As String
'Dim strBcc As String
'Dim strSubject As String
'Dim strBody As String
'strEmailadresse = ""
'strCc = "email@domain.de"
'strBcc = "email@domain.de"
'strSubject = "Betreff"
'strBody = "Emailtext"
ActiveWorkbook.FollowHyperlink Address:="mailto:" & strEmailadresse & _
"?subject=" & strSubject & _
"&cc=" & strCc & _
"&bcc=" & strBcc & _
"&body=" & strBody
End Function
Herzliche Grüße und noch ein schönes Wochenende
Oisse
Anzeige
AW: Email ohne Outlook versenden
15.05.2021 22:37:24
mumpel
Für Zeilenumbrüche nutze die HTML-Entities, diese mit in die Anführungszeichen setzen.
ActiveWorkbook.FollowHyperlink Address:="mailto:email1@domain.de" & _
                            "?subject=Test" & "&cc=email2@domain.de" & _
                            "&bcc=email3@domain.de" & _
                            "&Body=Hallo,%0A%0Ahier die Datei.%0A%0AGruß, Max"

VBA/HTML-CodeConverter, AddIn für Excel 2002-2019 (32-bit) und Excel 365 (32-bit Desktop-Version)
In VBA geschrieben von Lukas Mosimann. Projektbetreuung: René Holtz


Code erstellt und getestet in Excel 365 32-bit Desktopversion
Codedarstellung mit VBAHTML 12.6.0 erstellt.


Anzeige
AW: Email ohne Outlook versenden
16.05.2021 10:00:53
Herbert_Grom
Hallo Oisse,
prima, dass du eine Lösung gefunden hast. Die würde mich allerdings auch sehr interessieren! Könntest du bitte eine Beispieldatei mit deiner Lösung hochladen? Dafür vielen Dank im Voraus!
Servus
AW: Email ohne Outlook versenden
20.05.2021 17:59:32
Oisse
Hallo Herbert und entschuldige bitte, dass ich so spät antworte, ich dachte nicht, dass da noch was nachkommt.
Die Lösung ist eigentlich nur die Funktion, die ich schon reingestellt habe, wobei die Funktion die drei Parameter erwartet:
strEmailadresse = die Emailadresse des Empfängers
strSubject = der Betreff
und strBody = der Email-Text, so wie es auch in der Funktion erklärt wird.
Ich habe allerdings als Standard Windows-Mail eingestellt und nicht mehr Outlook.
Wenn das Email-Programm aufgerufen wird, erscheinen zunächst alle Konten. Ich wähle dann das Exchange-Konto aus, und es werden die entsprechenden Daten eingefügt.
Hier noch mal die Funktion: (könnte man natürlich noch erweitern um strCc und strBcc)

Function Email_senden_Org(ByVal strEmailadresse$, strSubject$, strBody$)
'Dim strEmailadresse As String
'Dim strCc As String
'Dim strBcc As String
'Dim strSubject As String
'Dim strBody As String
'strEmailadresse = ""
'strCc = "email@domain.de"
'strBcc = "email@domain.de"
'strSubject = "Betreff"
'strBody = "Emailtext"
ActiveWorkbook.FollowHyperlink Address:="mailto:" & strEmailadresse & _
"?subject=" & strSubject & _
"&cc=" & strCc & _
"&bcc=" & strBcc & _
"&body=" & strBody
End Function
Herzliche Grüße
Oisse
Anzeige
AW: Email ohne Outlook versenden
20.05.2021 18:22:53
Herbert_Grom
Hallo Oisse,
vielen Dank für deine Nachricht! Lieber spät, als gar nicht! Aber warum hast du das als "Function" gebaut? Geht das nicht als normale "Sub"?
P. S.: Falls dein thread morgen hinten runterfällt, kannst du mir ja eine eMail schicken. Meine Adr findest du hier bei den Profilen!
Servus
AW: Email ohne Outlook versenden
20.05.2021 18:06:17
Oisse
Hallo Mumpel,
zunächst entschuldige bitte, die späte Rückantwort. Dann:
Viiiielen herzlichen Dank für Deine Hilfe.
Funktioniert super.
Gruß Oisse

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige