Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
464to468
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
464to468
464to468
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatischer Mailversand

automatischer Mailversand
07.08.2004 19:31:35
Bernhard
Hallo Leute,
Ich möchte gern eine über "Workbooks.Add" erzeugte Tabelle automatisch per Mail versenden.
Das Problem liegt darin, daß dieses über Rechner geschehen soll, die sich meinem Zugriff entziehen.
Das auf diesen Rechnern verwendete Mailsystem ist somit unbekannt.
Es können auch keine Verweise von den Anwendern hergestellt werden.
Alle in der Recherche gefundenen Bsp. erfordern entweder die Erstellung eines Verweises auf die Outlook-Objektblibiothek und beziehen sich meistens auch auf das Mailsystem Outlook.
Ich könnte zwar die Verwendung auf Outlook und Outlook-Express begrenzen,müßte dann aber den Verweis auf die entsprechende Outlook-Objektblibiothek automatisch erstellen lassen.
Eventuell gibt es ja etwas, daß diesen Vorgan automatisiert.
Vieleicht gibt es ja auch eine System unabhängige Möglichkeit.
Kann mir jemand helfen ?
Gruß
Bernhard

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatischer Mailversand
Ramses
Hallo
Probier mal das als Ansatz


Sub Send_Mail_mit_irgendwas()
'by Ramses
Dim strRec As String, strSend As String
Dim myPath As String
myPath = Application.ActiveWorkbook.path
strRec = "irgendwer@irgendwo.de"
'oder Empfänger aus einer Zelle holen
'strRec = "irgendwer@irgendwo.de"
'zu versendende geöffnete Mappe
strSend = "Mappe1.xls"
'Temporäre Arbeitsmappe aus der Tabelle erstellen
Sheets("Tabellenname").Copy
'Wechseln auf Laufwerk und Verzeichnis
ChrDrive Left(myPath, 2)
ChDir myPath
'Arbeitsmappe temporär speichern
ActiveWorkbook.SaveAs FileName:=myPath & "\" & strSend
'Wenn kein Mailsystem installiert ist, wird die
'Mail nicht versendet
If Application.MailSystem <> xlNoMailSystem Then
    Application.ActiveWorkbook.SendMail strRec, "Abholauftrag Import von " & Application.OrganizationName, False
Else
    MsgBox "Kein verwendbares Mailsystem installiert"
End If
'Die temporäre Arbeitsmappe wieder schliessen
ActiveWorkbook.Close
' Die temporär erstellte Arbeitsmappe wieder löschen
Kill myPath & "\" & strSend
End Sub


Gruss Rainer
Anzeige
AW: automatischer Mailversand
07.08.2004 21:07:59
Bernhard
Hallo Rainer,
danke für Deine Mühe.
Ich habe auf meinem Rechner Outlook-Express installiert.
Dennoch bekomme ich bei Anwendung Deiner Routine die Meldung "Kein verwendbares Mailsystem installiert".
Das ist mir bei anderen Routinen aber auch schon passiert.
Hast Du eine Erklährung hierfür?
Gruß
Bernhard
AW: automatischer Mailversand
Ramses
Hallo
probier mal
ActiveWorkbook.SendMail recipients:="irgendwer@irgendwo.de"
und sag mal was dann passiert
Gruss Rainer
AW: automatischer Mailversand
07.08.2004 21:36:06
Bernhard
Hallo Rainer,
hier erhalte ich die Meldung
Die Methode "SendMail" für das Objekt "Workbook" ist fehlgeschlagen"
oder ich habe Deine Zeile falsch eingebunden.
Gruß
Bernhard
Anzeige
AW: automatischer Mailversand
Ramses
Hallo Bernhard
dann befürchte ich mal, dass diese Funktion, und auch die oberen, in Office 97 noch nicht unterstützt werden :-(
Sorry,...
Eine andere Variante zum senden einer Arbeitsmappe ist mir leider nicht bekannt.
Man kann zwar über API-Funktionen Mails mit dem Default Programm senden und den Bereich allenfalls in VBA aufbereiten, dass er im Text erscheint,... allerdings ohne eben die richtige Arbeitsmappe zu senden.
Gruss Rainer
AW: automatischer Mailversand
07.08.2004 22:45:17
Frank
Hi
eine weitere variante wäre das nutzen des CDO Interfaces. Vorteile:
- Mailprogram ist egal (SMTP Server wird genutzt)
- Geht auch für alte Office Applikationen
- keine Outlook Sicherheitswarnungen.
Beispielcode:
http://www.rondebruin.nl/cdo.htm
Gruß
Frank
Anzeige
AW: automatischer Mailversand
Ramses
Hallo Frank
Interessante Variante über CDO Variante zu gehen.
Muss ich mir mal etwas genauer anschauen :-)
Gruss Rainer
AW: automatischer Mailversand
07.08.2004 23:26:55
Bernhard
Hallo Rainer,
hallo Frank,
@Rainer
Diese Zeile
"ActiveWorkbook.SendMail Recipients:="Thomas Louis""
steht so in der VBA-Hilfe von Off 97
Es müsste also funktionieren.
Geht aber nicht.
@ Frank
Habe einige Varianten dieser Page ausprobiert und die im nachfolgendem Link dargestellte Fehlermeldung erhalten.
https://www.herber.de/bbs/user/9346.xls
Ich danke Euch trotzdem für Eure Mühe.
Gruss
Bernhard
Anzeige
AW: automatischer Mailversand
07.08.2004 23:37:26
Frank
Hi Bernard
einen Grund dafür beschreibt Ron ja schon selber auf seiner Seite (kein Account in Outlook aufgesetzt) und auch eine entsprechende Lösung (die kommentierten Codezeilen wieder nutzen).
Ansosnten habe ich Ron mal angemailt und ihn gefragt, ob er den Grund für diesen Fehler weiß
Frank
AW: automatischer Mailversand
08.08.2004 00:03:25
Bernhard
Hallo Frank,
Da ich den Code nicht richtig durchschaue, verstehe ich Die Anmerkung
" (kein Account in Outlook aufgesetzt) und auch eine entsprechende Lösung (die kommentierten Codezeilen wieder nutzen)" auch nicht.
Nur Fehlermeldungen.
Eventuell bekommst Du von Ron ja noch eine Lösung.
Gruß
Bernhard
Anzeige
AW: automatischer Mailversand
08.08.2004 00:14:09
Frank
Hi Bernhard
poste doch mal den jetzt von Dir ausprobioerten Code, der diesen Fhler verursacht hat
Frank
AW: automatischer Mailversand
08.08.2004 00:49:52
Bernhard
Hallo Frank,
nachfolgend eine der Routinen, die zu Fehlern Führte.
Sie blieb bei " .Send " mit der Fehlermeldung aus dem vorhin dargestellten Link stehen.

Sub CDO_Send_Workbook()
' This example use late binding, you don't have to set a reference
' You must be online when you run the sub
Dim iMsg As Object
Dim iConf As Object
Dim wb As Workbook
Dim WBname As String
'    Dim Flds As Variant
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
' Or use this Set wb = ThisWorkbook
WBname = wb.Name ' & " " & Format(Now, "dd-mm-yy h-mm-ss") & ".xls"
wb.SaveCopyAs "C:/" & WBname
' It will save a copy of the file in C:/ with a Date and Time stamp
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
'iConf.Load -1    ' CDO Source Defaults
'Set Flds = iConf.Fields
'With Flds
' <a href=".Item("http://schemas.microsoft.com/cdo/configuration/sendusing")">.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")</a> = 2
' <a href=".Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")">.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")</a> = "Fill in your SMTP server here"
' <a href=".Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")">.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")</a> = 25
'    .Update
'End With
'Check out the Tips section if you want to change the .To and .TextBody
With iMsg
Set .Configuration = iConf
.To = "Zieladresse"
.CC = ""
.BCC = ""
.From = """Bernhard""Laurinium@gmx.de"
.Subject = "This is a test"
.TextBody = "This is the body text"
.AddAttachment "C:/" & WBname
' You can add any file you want with this line .AddAttachment "C:/Test.txt"
.Send
End With
Kill "C:/" & WBname    'If you not want to delete the file you send delete this line
Set iMsg = Nothing
Set iConf = Nothing
Set wb = Nothing
Application.ScreenUpdating = True
End Sub

Gruß
Bernhard
Anzeige
AW: automatischer Mailversand
08.08.2004 08:06:05
Frank
Hi Bernhard
und jetzt versuche mal für die Codezeilen zwischen den
######################
Zeichen die kommentierung zu entfernen. WICHTIG: Für die zweite Zeile musst du deinen SMTP Server angeben
Frank
AW: automatischer Mailversand
08.08.2004 14:25:47
Bernhard
Hallo Frank,
habe das mal versucht und die im Link dargestellte Fehlermeldung erhalten.
Das Prg läuft bis ".Send " und hält dann mit Fehlermeldung an.
Die Datei wurde vorher in " C " abgelegt und wird nach dem Überspringen von " .Send " auch ordnungsgem. gelöscht.
Die komplette Datei mit Fehlermeldung befindet sich im Link " https://www.herber.de/bbs/user/9357.xls ".
Mir ist aufgefallen, dass hier nirgendwo das Password für den Mailserverzugang angegeben wird.
Das kann dann doch aber eigendlich nicht funktionieren, denke ich.
Gruss
Bernhard
Anzeige
AW: automatischer Mailversand
08.08.2004 14:28:15
Frank
Hi Bernhard
den musst Du natürlich auch angeben. Am Anfang dieser Seite von Ron wird auf den entsprechenden KB Artikel von Microsoft verwiesen.
Frank
AW: automatischer Mailversand
08.08.2004 14:58:30
Bernhard
Hallo Frank,
du hast Dir wirklich sehr viel Mühe gegeben, aber ich steige jetzt einfach nicht mehr durch.
Ich habe mir die Seite von Ron nocheinmal angesehen, kann aber nicht erkennen, wie ich die Eingabe von Username und Passwordeingabe zu realisieren habe.
Wenn Du jetzt aufgibst, würde ich es Dir nicht übel nehmen und sage trotz allem schon mal "Danke für Deine Geduld.
Gruss
Bernhard
AW: automatischer Mailversand
08.08.2004 15:19:28
Frank
Hi bernhard
mein Problem ist, das ich hier bei mir zu Hause keinen SMTP Server für testzwecke installiert habe und es daher schlecht ausprobieren kann.
Frank
Anzeige
Danke Frank
08.08.2004 15:55:05
Bernhard
Man findet nich viele, die sich so viel Mühe geben.
Ich werde noch ein wenig an diesem Problem experimentieren.
Wenn es dann gar nicht klappt,werde ich mich wohl auf Outlook festlegen müssen.
Da dieses Ganze aber von unbedarften Usern angewendet werden soll, müsste der Verweis auf die "Outlook Libary" dann automatisch per VBA erstellt werden können.
Hierzu werde ich ggf. eine Neue Runde einleiten müssen.
Gruss
Bernhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige