Discussion:
E-Mail aus Access automatisch versenden
(zu alt für eine Antwort)
Axel Gruber
2003-10-29 10:58:19 UTC
Permalink
Hallo

Ich suche nach einer möglichkeit die es dem Benutzer gestattet durch einen
Klick
eine automatisch generierte E-Mail an einen bestimmten empfänger zu
senden.

Als Quelle soll ein Bericht oder eine Abfrage dienen (TEXT)
Der Betreff sollte fest definiert sein
der Absender wird aus einer abfrage heraus generiert. (im format:
***@test.de)

Ich habe mich bereits im WEB umgeschaut aber entweder nur nicht
funktionierende Lösungen
gefunden oder Sachen, die meine Programmierkenntnisse übersteigen.

Evtl hat von euch jemand einen Tipp.

System:

WIN2K
OutlookExpress installiert und konfiguriert (wenn notwendig)
Office 2K

Best regards

Axel
Gunter Avenius
2003-10-29 11:08:31 UTC
Permalink
Hallo Axel,
Post by Axel Gruber
Ich suche nach einer möglichkeit die es dem Benutzer gestattet
durch einen Klick
eine automatisch generierte E-Mail an einen bestimmten empfänger
zu senden.
Als Quelle soll ein Bericht oder eine Abfrage dienen (TEXT)
Der Betreff sollte fest definiert sein
Ich habe mich bereits im WEB umgeschaut aber entweder nur nicht
funktionierende Lösungen
gefunden oder Sachen, die meine Programmierkenntnisse übersteigen.
Evtl hat von euch jemand einen Tipp.
Onlinehilfe, Stichwort "SendObject"
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Axel Gruber
2003-10-29 11:24:35 UTC
Permalink
Hallo

Erstmal danke für die schnelle Antwort.

Das hatte ich bereits gesehen und auch versucht. - Leider passiert hier
folgendes:
Laufzeitfehler 2287 Access kann keine E-Mail sitzung öffnen.....
Post by Gunter Avenius
Onlinehilfe, Stichwort "SendObject"
Kann es sein, dass Access Outlook benötigt wohingegen ich nur Outlook
Express installiert habe ?

CU

Axel
Gunter Avenius
2003-10-29 11:29:03 UTC
Permalink
Hallo Axel,
Post by Axel Gruber
Das hatte ich bereits gesehen und auch versucht. - Leider passiert
Laufzeitfehler 2287 Access kann keine E-Mail sitzung öffnen.....
Evtl. hilft Access FAQ Punkt 7.19
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Thomas Möller
2003-10-29 11:26:29 UTC
Permalink
Hallo Axel,
Post by Axel Gruber
Ich suche nach einer möglichkeit die es dem Benutzer gestattet durch
einen Klick
eine automatisch generierte E-Mail an einen bestimmten empfänger zu
senden.
Als Quelle soll ein Bericht oder eine Abfrage dienen (TEXT)
Der Betreff sollte fest definiert sein
schau mal auf meiner HP unter Access / Tipps und Tricks / E-Mails versenden.
Dort habe ich einige Quellen und Ressourcen zum Thema E-Mailversand
zusammengetragen.

HTH
--
***@Team-Moeller.de

Homepage: www.team-moeller.de

TM-FixObjectNames: Update auf Version 2.15 (seit 29.10.03)
Addin: Steuerelemente gemäß Namenskonvention umbenennen
Axel Gruber
2003-10-29 12:19:38 UTC
Permalink
Danke thomas für deine schnelle Antwort.

Irgendwie bevorzuge ich die "Outlook Express"-Lösung (evtl. weil sie so
schön einfach
sein soll)

Leider hänge ich nun genau bei dem Problem, das inder FAQ 7.19 beschrieben
ist:

Zitat: Falls eine Outlook-Version mit den div. Sicherheits-Updates verwendet
wird, kann es zu einer Sicherheits-Warnmeldung und danach einer
Fehlermeldung à la "Access kann die Nachricht wegen... nicht verschicken"
kommen. Nähere Info s.
http://support.microsoft.com/support/kb/articles/Q262/9/97.ASP

Evtl bin ich auch zu blöd - aber die in der SDB angegebenen Maßnahmen
verstehe ich nicht.
Hat schon mal jemand diese Situation zum laufen gebracht ?

CU

Axel
Peter Doering
2003-10-29 12:49:17 UTC
Permalink
Hallo Axel,
OutlookExpress ...
Zu dem Thema hat Lyle Fairfield was gemacht. Der Code ist in ein
/Class/-Modul zu kopieren. Achte auch auf korrekte Zeilenumbrueche.

'************
Option Explicit

Private Type MAPIRecip
Reserved As Long
RecipClass As Long
Name As String
Address As String
EIDSize As Long
EntryID As String
End Type

Private Type MAPIFileTag
Reserved As Long
TagLength As Long
Tag() As Byte
EncodingLength As Long
Encoding() As Byte
End Type

Private Type MAPIFile
Reserved As Long
Flags As Long
Position As Long
PathName As String
FileName As String
FileType As Long
End Type

Private Type MAPIMessage
Reserved As Long
Subject As String
NoteText As String
MessageType As String
DateReceived As String
ConversationID As String
Originator As Long
Flags As Long
RecipCount As Long
Recipients As Long
FileCount As Long
Files As Long
End Type

Private Declare Function MAPISendMail _
Lib "c:\program files\outlook express\msoe.dll" ( _
ByVal Session As Long, _
ByVal UIParam As Long, _
ByRef message As MAPIMessage, _
ByVal Flags As Long, _
ByVal Reserved As Long) As Long

Private Const MAPI_E_NO_LIBRARY = 999
Private Const MAPI_E_INVALID_PARAMETER = 998

Private Const MAPI_ORIG = 0
Private Const MAPI_TO = 1
Private Const MAPI_CC = 2
Private Const MAPI_BCC = 3

Private Const MAPI_UNREAD = 1
Private Const MAPI_RECEIPT_REQUESTED = 2
Private Const MAPI_SENT = 4

Private Const MAPI_LOGON_UI = &H1
Private Const MAPI_NEW_SESSION = &H2
Private Const MAPI_DIALOG = &H8
Private Const MAPI_UNREAD_ONLY = &H20
Private Const MAPI_ENVELOPE_ONLY = &H40
Private Const MAPI_PEEK = &H80
Private Const MAPI_GUARANTEE_FIFO = &H100
Private Const MAPI_BODY_AS_FILE = &H200
Private Const MAPI_AB_NOMODIFY = &H400
Private Const MAPI_SUPPRESS_ATTAch = &H800
Private Const MAPI_FORCE_DOWNLOAD = &H1000

Private Const MAPI_OLE = &H1
Private Const MAPI_OLE_STATIC = &H2


Dim mAf() As MAPIFile
Dim mAr() As MAPIRecip
Dim lAr As Long
Dim lAf As Long
Dim mM As MAPIMessage
Dim aErrors(0 To 26) As String

Private Sub Class_Initialize()
aErrors(0) = "Success"
aErrors(1) = "User Abort"
aErrors(2) = "Failure"
aErrors(3) = "LogIn Failure"
aErrors(4) = "Disk Full"
aErrors(5) = "Insufficient Memory"
aErrors(6) = "Block Too Small"
aErrors(8) = "Too Many Sessions"
aErrors(9) = "Too Many Files"
aErrors(10) = "Too Many Recipients"
aErrors(11) = "Attachment No Found"
aErrors(12) = "Attachment Open Failure"
aErrors(13) = "Attachment Write Failure"
aErrors(14) = "Unknown Recipient"
aErrors(15) = "Bad Recipient"
aErrors(16) = "No Messages"
aErrors(17) = "Invalid Message"
aErrors(18) = "Text Too Large"
aErrors(19) = "Invalid Session"
aErrors(20) = "Type Not Suppported"
aErrors(21) = "Ambiguous Recipient"
aErrors(22) = "Message in Use"
aErrors(23) = "Network Failure"
aErrors(24) = "Invalid Edit Fields"
aErrors(25) = "Invalid Recipient"
aErrors(26) = "Not Supported"
End Sub

Public Sub BCCAddressAdd(ByVal strAddress As String)
RecipientAdd MAPI_BCC, , strAddress
End Sub

Public Sub BCCNameAdd(ByVal strName As String)
RecipientAdd MAPI_BCC, strName
End Sub

Public Sub CCAddressAdd(ByVal strAddress As String)
RecipientAdd MAPI_CC, , strAddress
End Sub

Public Sub CCNameAdd(ByVal strName As String)
RecipientAdd MAPI_CC, strName
End Sub

Public Sub MessageIs(ByVal strNoteText As String)
mM.NoteText = strNoteText
End Sub

Public Sub SubjectIs(ByVal strSubject As String)
mM.Subject = strSubject
End Sub

Public Sub ToAddressAdd(ByVal strAddress As String)
RecipientAdd MAPI_TO, , strAddress
End Sub

Public Sub ToNameAdd(ByVal strName As String)
RecipientAdd MAPI_TO, strName
End Sub

Public Sub FileAdd(ByVal strPathName As String)
Dim f As MAPIFile
With f
.PathName = StrConv(strPathName, vbFromUnicode)
End With
ReDim Preserve mAf(lAf)
mAf(lAf) = f
lAf = lAf + 1
End Sub

Public Sub Send()
Dim r As Long
With mM
If lAf > 0 Then
.FileCount = lAf
.Files = VarPtr(mAf(0))
End If
If lAr > 0 Then
.RecipCount = lAr
.Recipients = VarPtr(mAr(0))
r = MAPISendMail(0, 0, mM, 0, 0)
If r <> 0 Then MsgBox aErrors(r)
End If
End With
End Sub

Private Sub RecipientAdd(ByVal lngType As Long, _
Optional ByVal strName As String, Optional ByVal strAddress As String)
Dim r As MAPIRecip
r.RecipClass = lngType
If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
If strAddress <> "" Then r.Address = StrConv(strAddress, _
vbFromUnicode)
ReDim Preserve mAr(lAr)
mAr(lAr) = r
lAr = lAr + 1
End Sub
'************


HTH - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Axel Gruber
2003-10-30 09:18:40 UTC
Permalink
Ich möchte mich bei allen bedanken, die mir geholfen haben !

Leider komme ich damit nicht zurecht....

Problem das Access läuft auf einem Terminal-SERVER jeder User bräuchte
demnach
einen eingerichteten Outlook oder Outlook-Express Account.
Hier währ eine Lösung ganz ohne ein externes Programm toll.

Ich habe eine Access-Beispiel von www.freeaccess.de probiert, die angeblich
ganz
ohne externe Programme auskommt.

Leider funktioniert das nicht so ganz, da all unsere SMTP-SERVER eine
Authentifikation
verlangen und dies diese MDB nicht unterstützt.

Evtl kennt jemand noch eine lösung, die rein Access-Basierend ist und
"einfach" zu
implementieren ist.

MFG

Axel Gruber
Bernhard Martin
2003-10-30 14:13:27 UTC
Permalink
Hallo Axel,
Post by Axel Gruber
Ich möchte mich bei allen bedanken, die mir geholfen haben !
Leider komme ich damit nicht zurecht....
Problem das Access läuft auf einem Terminal-SERVER jeder User bräuchte
demnach
einen eingerichteten Outlook oder Outlook-Express Account.
Hier währ eine Lösung ganz ohne ein externes Programm toll.
Ich habe eine Access-Beispiel von www.freeaccess.de probiert, die
angeblich ganz
ohne externe Programme auskommt.
Leider funktioniert das nicht so ganz, da all unsere SMTP-SERVER eine
Authentifikation
verlangen und dies diese MDB nicht unterstützt.
Evtl kennt jemand noch eine lösung, die rein Access-Basierend ist und
"einfach" zu
implementieren ist.
MFG
Axel Gruber
vielleicht hilft Dir mein Artikel zu Access & Email auf meiner HP im
Downloadbereicht. Evtl. Dürfte PostieDB für Dich eine interessante
Alternative bieten.
--
Gruss Bernhard

Bitte keine E-Mail Anfragen zu Access-Problemen. Auch keine Kopien der
Postings!

Homepage: http://www.unofactura.de
KnowHow.mdb http://www.freeaccess.de
Access-FAQ http://www.donkarl.com/AccessFAQ.htm
SQL-Server-FAQ : http://www.berndjungbluth.de/sqlfaq/sqlfaq.htm
Udo Joester
2003-10-30 14:19:57 UTC
Permalink
Hallo Axel,
Hallo NG,
Post by Axel Gruber
Problem das Access läuft auf einem Terminal-SERVER jeder User bräuchte
demnach
einen eingerichteten Outlook oder Outlook-Express Account.
m. E. brauchst Du immer ein Account oder eine Authentifizierung um eine
E-Mail zu versenden ...
Post by Axel Gruber
Hier währ eine Lösung ganz ohne ein externes Programm toll.
Leider funktioniert das nicht so ganz, da all unsere SMTP-SERVER eine
Authentifikation
verlangen und dies diese MDB nicht unterstützt.
Vielleicht hilft Die meine Lösung weiter,

schau doch mal unter http://www.joester.de -> Freeware -> dll zum Versenden
von ...


Du benötigst:


- ein konfiguriertes Mapi-fähiges E-Mail-Programm Outlook , OE
- die dll, welche die Steuerung übernimmt.
- ein wenig VBA Code.

sollte auch mit einem TS funktionieren ...

hth


Gruß


Udo
Peter Steimann[MVP Access]
2003-10-30 16:51:52 UTC
Permalink
Hallo Axel
Post by Axel Gruber
Ich möchte mich bei allen bedanken, die mir geholfen haben !
Leider komme ich damit nicht zurecht....
Problem das Access läuft auf einem Terminal-SERVER jeder User bräuchte
demnach
einen eingerichteten Outlook oder Outlook-Express Account.
Hier währ eine Lösung ganz ohne ein externes Programm toll.
Ich habe eine Access-Beispiel von www.freeaccess.de probiert, die angeblich
ganz
ohne externe Programme auskommt.
Leider funktioniert das nicht so ganz, da all unsere SMTP-SERVER eine
Authentifikation
verlangen und dies diese MDB nicht unterstützt.
Dann bau's doch einfach ein? Oder lass es von jemandem einbauen, wenn Du
nicht klarkommst. Guido Studer wird Dir sicher behilflich sein.
--
Gruss

Peter
-----------------------------------------------------------
Mitglied des APP-Profipools www.accessprofipool.de
Zeiterfassungs-Systeme unter www.timesoft.ch
http://mvp.support.microsoft.com/default.aspx?scid=fh;DE;mvpspsteimann
Loading...