E-Mail aus Excel verschicken

  • #1
K

klexy

Bekanntes Mitglied
Themenersteller
Dabei seit
04.05.2002
Beiträge
802
Reaktionspunkte
0
Ort
Bayern
Hallo Gemeinde.

Situation:
Arbeitsprozeß Artikel anlegen. Jeden Tag werden ein paar Artikel angelegt.
Ein Artikel wird von mehreren Leuten in mehreren Schritten angelegt. Immer in der gleichen Reihenfolge. Ein Arbeitsprozeß dauert insgesamt mehrere Tage (leicht variabel).

Aufgabenstellung:
In einer Excel-Datei (für jeden Artikel eine eigene entsprechend benannte Datei = sog. Artikelstammblatt) sollen diese Leute nacheinander (in der vorgegebenen Reihenfolge) und untereinander ihren Servus reinschreiben und einen Ich habe fertig-Button drücken. Für jede dieser Personen ist ein eigener Button vorgesehen.
Ein Makro öffnet dann eine Überblickstabelle, in der alle Artikelnummern (fünfstellig) untereinander stehen und schreibt beim entsprechenden Artikel in die Spalte des entsprechenden Bearbeiters das Datum rein.
Das hab ich alles gelöst inkl. Warnfunktion bei Überschreitung des Zeitrahmens usw.

Problem:
Beim Druck auf den Button soll zusätzlich eine Mail an den jeweils nächsten Bearbeiter geschickt werden: Bei Artikel 47110 bist du jetzt dran.
Ich habe im Internet gelesen, daß es eine Möglichkeit gibt, Mails unabhängig vom verwendeten Mailclient Mails zu verschicken. Stichwort CDO (Technisch vermutlich was ähnliches wie Viren und Trojaner)
z.B. hier: http://www.paul
sadowski.com/WSH/cdo.htm

Auf meinem Rechner (privat) verwende ich Win XP, Office 97 und Outlook Express 6 (Die Firma arbeitet mit Novell GroupWise als E-Mail-Programm)

Ich habe mir eine Testdatei gebastelt, mit folgendem Makro:
Code:
Sub LKS_MailMakro()

Dim LKS_Betreff As String, LKS_Abs As String, LKS_Empf As String, LKS_Text As String
LKS_Betreff = Range(B2)
LKS_Abs = Range(B3)
LKS_Empf = Range(B4)
LKS_Text = Range(B5)

Set objMessage = CreateObject(CDO.Message)
objMessage.Subject = LKS_Betreff
objMessage.From = LKS_Abs
objMessage.To = LKS_Empf
objMessage.TextBody = LKS_Text
objMessage.Send

End Sub
Es kommt aber eine Fehlermeldung, daß die Nachricht nicht an SMTP-Server geschickt werden konnte. Serverantwort not available.
Im entsprechenden Firmennetzwerk kommt eine andere Fehlermeldung (Wortlaut im Augenblick nicht verfügbar)
Im Internet rauf und runter finde ich keine Lösung und das da überfordert meine Fachenglischkenntnisse: http://www.ilopia.com/Articles/WindowsServer2003/CDO.aspx

Kann mir einer einen Tip geben, wo der Haken ist und wo ich weitersuchen muß?
 
  • #2
  • #3
Dann werd ich mich mal ans Werk machen.
Über den Erfolg berichte ich hier, falls noch jemand sowas vorhat.

Danke
Klexy
 
  • #4
Die Links haben mir leider nicht direkt weitergeholfen, weil sie sich anscheinend nur auf höhere Office-Versionen als 97 beziehen. Bei mir ist dies CDO nicht vorhanden und die Version, die bei Microsoft zum Download angeboten wird (http://www.microsoft.com/downloads/...997-4DE1-986F-24F081725D36&displaylang=en), erzählt beim Versuch einer Installation, daß eine höhere Office-Version benötigt wird . Es gibt Vorläuferversionen von CDO: OLE Messaging und Active Messaging, da blick ich aber auch nicht durch.
Ich habe nach dem Installationsversuch eine Datei C:\WINDOWS\system32\cdosys.dll. Ich weiß nicht, ob die vorher schon da war. Ich glaube nicht. Kann das sein?
Außerdem wird immer von Exchange Server gesprochen, was ich nicht verstehe und wahrscheinlich auch nicht habe.
Und angeblich soll das ja unabhängig vom installierten Mailprogramm funktionieren.

Ich bin aber dann auf diese Website gestoßen: http://www.rondebruin.nl/sendmail.htm, genauer: http://www.rondebruin.nl/cdo.htm Von hier hab ich dann die Version mit gmail genommen und angepaßt:
Code:
Sub CDO_Mail_aus_Excel()

Dim ABC_Betreff As String, ABC_Abs As String, ABC_Text As String
  Dim ABC_Empf As String, ABC_CC As String, ABC_BCC As String
  Dim iMsg As Object
  Dim iConf As Object
  Dim Flds As Variant

  ABC_Betreff = Range(B2)
  ABC_Abs = Range(B3)
  ABC_Empf = Range(B4)
  ABC_CC = Range(B5)
  ABC_BCC = Range(B6)
  ABC_Text = Range(B7)

  Set iMsg = CreateObject(CDO.Message)
  Set iConf = CreateObject(CDO.Configuration)

  iConf.Load -1
  Set Flds = iConf.Fields
  With Flds
    .Item([url]http://schemas.microsoft.com/cdo/configuration/smtpusessl[/url]) = True
    .Item([url]http://schemas.microsoft.com/cdo/configuration/smtpauthenticate[/url]) = 1
    .Item([url]http://schemas.microsoft.com/cdo/configuration/sendusername[/url]) = [email protected]
    .Item([url]http://schemas.microsoft.com/cdo/configuration/sendpassword[/url]) = Passwort
    .Item([url]http://schemas.microsoft.com/cdo/configuration/smtpserver[/url]) = smtp.gmail.com
    .Item([url]http://schemas.microsoft.com/cdo/configuration/sendusing[/url]) = 2
    .Item([url]http://schemas.microsoft.com/cdo/configuration/smtpserverport[/url]) = 25
    .Update
  End With

  With iMsg
    Set .Configuration = iConf
    .To = ABC_Empf
    .CC = ABC_CC
    .BCC = ABC_BCC
    .ReplyTo = ABC_Abs
    .From = ABC_Abs
    .Subject = ABC_Betreff
    .TextBody = ABC_Text
    .Send
  End With

End Sub
Das hat bei mir zuhause mit XP home und Office97 einwandfrei funktioniert.

Hier in der Firma, wo ich mir damit das Leben erleichtern will, geht es aber nicht (XP professional und Office97). Eine Datei C:\WINDOWS\system32\cdosys.dll ist vorhanden. Das Makro bleibt beim Punkt .Send hängen.Die Fehlermeldung lautet Der Transport konnte keine Verbindung zum Server herstellen

Liegt es vielleicht am angegebenen Port? Oder an irgendwelchen Firewall-Einstellungen? Und wo muß ich da nachsehen?
Kann man auf seinem Computer einen SMTP-Server einrichten? Soweit mir bekannt ist, arbeiten Viren mit sowas.
Hilft da so etwas: http://www.pmail.com/m32_451.htm?
Oder Das: http://www.patshaping.de/hilfen_ta/webserver/mailserver.htm?
 
Thema:

E-Mail aus Excel verschicken

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben