AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.02.20 - 03:34:50
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  OLE/COM-Programmierung
| | |-+  Per VBA von unterschiedlichen Mail-Files versenden
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Per VBA von unterschiedlichen Mail-Files versenden  (Gelesen 15666 mal)
MyPass
Frischling
*
Offline Offline

Beiträge: 3


« am: 14.06.11 - 18:09:01 »

Hallo,

mit Hilfe des Forums und Google habe ich es geschafft, dass ich über VBA Mails versenden kann und auch Anhänge verarbeiten kann. Ich hänge jetzt aber fest Mails auch von einer allgemeinen Mailbox zu versenden.

Der bisherige Code lautet:

' Notes Saisson starten
  Set Session = CreateObject("Notes.NotesSession")
  UserName = Session.UserName
  MailDbName = Left$(UserName, 1) & _
    Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
' Öffnen der Notes-Datenbank
  Set Maildb = Session.GETDATABASE("", MailDbName)


An der markierten Stelle muss etwas anderes rein...? Nur was? Mit MailDbName="" habe ich es auch schon versucht.


Mein Mailfilename lautet  "int/xxx/hmuster.nsf"  (1. Stelle vom Vorname + Nachname + .nsf)

Versenden möchte ich von "int/xxx/allgemeina.nsf", Der Benutzer für die DB ist "Allgemein-Abteilung"!


Habt ihr Tipps wonach ich suchen muss, damit ich das hinbekomme!

Danke & Ciao
MyPass
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2640



« Antworten #1 am: 14.06.11 - 18:27:20 »

MailDbName = "int/xxx/allgemeina.nsf"

Ist sichergestellt, dass die Datenbank lokal liegt? Sonst musst Du einen Server angeben.

Woher soll VBA wissen, wie der Dateiname der Datenbank ist? Den musst Du, wenn Du ihn nicht errechnen kannst (wie in Deinem Beispiel aus dem Usernamen), vorgeben, oder irgendwo definierbar machen.

Es gibt m.W. keine feste Regelung, dass die Maildatenbank zwingend aus dem ersten Buchstaben des Vornamens und dem (oder Teilen des) Nachnamen(s) besteht. Den Dateinamen der aktuellen Maildatenbank kann man aus der Arbeitsumgebung auslesen, in Formel gibt es dafür @MailDBName, ob es ein Gegenstück in Script gibt, weiß ich nicht, müsste ich auch nachsehen.
Gespeichert
MyPass
Frischling
*
Offline Offline

Beiträge: 3


« Antworten #2 am: 15.06.11 - 01:02:06 »

Hallo,

danke für deine Info. Die Datenbank liegt definitiv nicht lokal sondern auf einem Server.

Aber auch die DB mit meinem Account, liegt am Server, und da funktioniert es.

Kannst du mir bitte nochmals einen Tipp geben, wie ich den Server abgeben.

....Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

Mit meiner Server-DB funktioniert auch dieses Beispiel...

Thx
MyPass
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2640



« Antworten #3 am: 15.06.11 - 07:27:38 »

Set Maildb = Session.GETDATABASE(Server, MailDbName)
Gespeichert
Banni
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 463



« Antworten #4 am: 15.06.11 - 07:40:10 »

Hallo,

was passiert, wenn Du den Namen der Mailbox mal fest "verdrahtest"? Wird die Mail dann aus Deiner Mailbox gesendet oder aus der allgemeinen?

Ich glaube, das Problem ist hier nicht der DB-Name. Beim Senden der Mail wird, wenn ich das richtig in Erinnerung habe, auf die aktuell in der notes.ini eingestellte Arbeitsumgebung zugegriffen. Änder dort mal die Einstellungen für Mailserver und Maildatei auf die Daten der allgemeinen Mailbox und teste das Ganze.

Gruß Jan
Gespeichert

Jan Bauer
Notes /Domino 6.5, 8

Geht nicht, gibt's nicht. Geht höchstens schwer...
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2640



« Antworten #5 am: 15.06.11 - 08:22:52 »

Beim Senden der Mail wird, wenn ich das richtig in Erinnerung habe, auf die aktuell in der notes.ini eingestellte Arbeitsumgebung zugegriffen.
Nein, das sehe ich anders.

Wenn ich per Script (und mit VBA ist das sicherlich nichts anderes) ein Dokument erstelle und es nur versende, wird es einfach nur geschickt, aber nirgendwo gespeichert. Beim Erstellen des Dokuments muss ich allerdings (irgend)eine Datenbank angeben (Set doc = New NotesDocument (db)), das muss noch nicht einmal eine Maildatenbank sein. Einzige Bedingung an die Datenbank ist, dass sie eine Vorgabeansicht haben muss. Wenn ich die gesendete Mail aufheben möchte, muss ich sie explizit speichern (Call doc.Save (True, True)), und dann wird sie in der Datenbank gespeichert, in der sie erstellt wurde. Arbeitsumgebungen, Notes.ini usw. sind in der Konstellation grundsätzlich bedeutungslos, außer bei der Übergabe der Mail in die mail.box (welcher Server bzw. lokal).
Gespeichert
TRO
Senior Mitglied
****
Offline Offline

Beiträge: 294


« Antworten #6 am: 15.06.11 - 09:23:35 »

Der richtige Code (unter COM/OLE):

Set notesDatabase = notesDbDirectory.OpenMailDatabase( )


hth

Thomas
Gespeichert
MyPass
Frischling
*
Offline Offline

Beiträge: 3


« Antworten #7 am: 06.04.13 - 15:40:15 »

Fürs Archiv:

Set Maildb = Session.GETDATABASE(Server, MailDbName)

Das funktioniert ohne Probleme. Ich hatte nur die falschen Parameter verwendet. Wer sich nicht sicher ist, was richtig ist:

Gewünschte DB in Notes öffnen, irgend ein Dokument öffnen, Rechte Maus, Eigenschaften -> Datenbank.

Hier nun Server und Datei auslesen, und es funktioniert!
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: