URL: https://www.overclockers.at/coding-stuff/e-mails_aus_ms_access_versenden_92676/page_1 - zur Vollversion wechseln!
Folgende Knobelei steht bei mir derzeit an:
In einer Access 2000-Datenbank sind Adressdaten (inkl. E-Mail-Adressen) gespeichert. Um die Daten auf Aktualität prüfen zu lassen sollen die Daten den betreffenden Personen per E-Mail zugeschickt werden. Jede Person soll also nur ihre eigenen Daten zugeschickt bekommen. Da es sich um > 700 Datensätze handelt sollte möglichst wenig manueller Aufwand bei der Bedienung nötig sein.
Praktisch wäre also eine Lösung per VBA direkt in Access, falls das aber nicht funktioniert, dann könnte ich mir auch einen Export in eine Datei (z.B. .csv) und Bearbeitung/Versand per externem Programm oder Script vorstellen (bevorzugt VBA, Perl oder ähnliches da ich mich damit schon etwas intensiver beschäftigt habe, notfalls muß ich mich ein wenig einarbeiten).
Hat wer kreative Vorschläge? Bis jetzt hab ich nicht wirklich brauchbare Infos zu dem Thema gefunden, meistens geht's um Massenmailings mit dem gleichen Text für alle Empfänger (in diesem Fall leider völlig nutzlos).
Vielen Dank!
mach a neue odbc-datenquelle dann kannst mit php (ev. perl?) ganz einfach alle adressen durchgehen und mailen.
Zitat von murcielagomach a neue odbc-datenquelle dann kannst mit php (ev. perl?) ganz einfach alle adressen durchgehen und mailen.
imho kann man mit vba eh wunderbar emails verschicken...
stichwort "SendObject" 
ok, kenn mich mit vba genau 0 aus.
mit asp (eigentlich eh VBA ähnlich, aber halt skriptsprache) ziemlich simpel.
zB
Daten=DBConn.execute("SELECT * FROM tabelle WHERE Kürzel = 'mb'")
'das is halt die datenbank connection, da will ich jetzt net auf details eingehen
strTo=Daten("Empfaenger")
strFrom="Frys_Assassin"
strSubject="Massenmail Nr. " & Daten("Nr")
strMemo="Folgende Daten sind eingetragen:" & chr(13)
strMemo=strMemo & Daten("Bla") & chr(13)
'Ich tu immer der Übersichtlichkeit die DAten zwischensppeichern
Set objMail=Server.CreateObject("CDONTS.Newmail")
'mittels ASP das Mail-Object generieren
objMail.From=strFrom
objMail.To=strTO
objMail.Subject=strSubject
objMail.Body=strMemo
objMail.Send
'alle daten initialisieren und abschicken
das ganze dann in einer endlosschleife für alle Datensätze in der struktur "Daten" und fertig
hab das thema jetzt aber nur grob umrissen, für details empfehle ich ein kleines selbststudium im internet 
edith: möglich dass du eh die selbe syntax auch im vba übernehmen kannst, ich weiss es aber net 
vba hat nen grindigen object-tree, is aber sonst wie vb - dazu kommt halt noch dass die doku keine struktur hat, aber sonst is topZitat von murcielagook, kenn mich mit vba genau 0 aus.

Hmmm ... SendObject in VBA hatte ich mir eigentlich schonmal angeschaut, aber da war ich offenbar ein bisserl blind. 
Klingt eigentlich relativ brauchbar, werd mir das noch genauer zu Gemüte führen.
Danke fürs Input!
wenns was einmaliges is würd is viel simpler machen - ohne coden...
hmmm export in xls... dann mit word an serienbrief erstellen - da müssts gehn den als serien-email versenden wenn i mi richtig erinnere.
dann kommts halt irgendwie als word an - evtl gibts da nu a "NUR TEXT" funktion. habs aba nu nie braucht, alles nur vermutungen.
mfG
CB
wo is das problem?
du holst dir ein outlook object und erstellst deine mailobjects und schickst die dann weg (bzw. du kannst sie ja in einen outlook ordner speichern lassen). über dieses thema gibt es genug tutorials..
muss man nicht outlook haben um aufs outlook-object zugreifen zu können?Zitat von matwo is das problem?
du holst dir ein outlook object und erstellst deine mailobjects und schickst die dann weg (bzw. du kannst sie ja in einen outlook ordner speichern lassen). über dieses thema gibt es genug tutorials..

hab sowas auch mal gemacht - vielleicht hilft dir dieser code weiter - ist aber für lotus notes R5 abgestimmt - aber kannst sicher für outlook umwandeln....
Private Function subSendNotesMail(Subject As String, Attachment As String, ByRef recipient As String, BodyText As String, SaveIt As Boolean)
' http://www.lotus.com/products/lotusscript.nsf/
'http://www.lotus.com/products/lotusscript.nsf/Notes%204.6%20Classes?OpenNavigator
'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'THe current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)
Dim version
Set session = CreateObject("Notes.NotesSession") 'Start a session to notes
version = session.NotesVersion
'Get the sessions username and then calculate the mail file name
UserName = session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'MailDbName = session.GetEnvironmentString("MailFile", True) ' Alternative zur Zeile darüber
'Open the mail database in notes
Set Maildb = session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
MailDoc.sendto = recipient
MailDoc.Subject = Subject
'MailDoc.Body = BodyText
MailDoc.SaveMessageOnSend = SaveIt
Set AttachME = MailDoc.CreateRichTextItem("Body")
AttachME.AppendText (BodyText)
Call AttachME.AddNewLine(2)
'Set up the embedded object and attachment and attach it
If Attachment <> "" Then
Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Body")
'MailDoc.CREATERICHTEXTITEM ("Attachment")
End If
Call AttachME.AddNewLine(1)
Set richStyle = session.CreateRichTextStyle
richStyle.FontSize = 10
richStyle.NotesColor = blue
Call AttachME.AppendStyle(richStyle)
Call AttachME.AppendText("Mit freundlichen Grüßen")
Call AttachME.AddNewLine(2)
richStyle.FontSize = 10
richStyle.Bold = True
Call AttachME.AppendStyle(richStyle)
Call AttachME.AppendText("")
Call AttachME.AddNewLine(1)
richStyle.NotesColor = red
richStyle.Bold = False
Call AttachME.AppendStyle(richStyle)
Call AttachME.AppendText("")
Call AttachME.AddNewLine(1)
richStyle.FontSize = 8
richStyle.NotesColor = blue
Call AttachME.AppendStyle(richStyle)
AttachME.AppendText ("Tel: " & "")
Call AttachME.AddNewLine(1)
AttachME.AppendText ("Fax: " & ")
Call AttachME.AddNewLine(1)
AttachME.AppendText ("e-mail: protected")
Call AttachME.AddNewLine(1)
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
'MailDoc.Send 0, recipient
MailDoc.Send True
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set session = Nothing
Set EmbedObj = Nothing
End Function
wer access hat.. sollt outlook auch haben - das IMO die leichteste variante.
du kannst auch eine c++ COM DLL machen und über SMTP mails wegschicken..
stimmt schon, aber ich versteh sowieso nicht warum der thread wieder ausgegraben wurde, er hat sich nimmer gemeldet, also nehm ich an er hats hinkriegt...Zitat von matwer access hat.. sollt outlook auch haben - das IMO die leichteste variante.
du kannst auch eine c++ COM DLL machen und über SMTP mails wegschicken..
Entschuldigt, daß ich mich so lang nimmer gemeldet hab, hab das Problem klassisch verdrängt, aber langsam wird's eh akut. 
Danke nochmal für die zahlreichen Beiträge, werd das Listing von haemma mal genauer unter die Lupe nehmen und ausprobieren. Auf dem Rechner, von dem die Mails wahrscheinlich verschickt werden, ist übrigens kein Outlook installiert (wohl aber Access), weil ich persönlich kein rechter Freund von Outlook bin (und schon garnicht auf einem Rechner den einige DA.... sagen wir mal wenig computererfahrene User nutzen). Im dümmsten Fall bleibt mir eh nur der Export in ein oder mehrere Textfiles und anschließender Versand per Shellscript unter Linux oder derartiges, irgendwie sollte es aber auf alle Fälle schaffbar sein. Leider wird das aber keine einmalige Aktion werden sondern soll in regelmäßigen Abständen (zumindest jährlich) durchgeführt werden. Daher wär mir halt eine möglichst simple und komfortable Variante direkt aus Access am liebsten (Idealfall: Klick und Tschüß!).
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026