Autor Thema: Per VBA von unterschiedlichen Mail-Files versenden  (Gelesen 19106 mal)

Offline MyPass

  • Frischling
  • *
  • Beiträge: 3
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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #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.

Offline MyPass

  • Frischling
  • *
  • Beiträge: 3
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #3 am: 15.06.11 - 07:27:38 »
Set Maildb = Session.GETDATABASE(Server, MailDbName)

Offline Banni

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #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
Jan Bauer
Notes /Domino 6.5, 8

Geht nicht, gibt's nicht. Geht höchstens schwer...

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #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).

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #6 am: 15.06.11 - 09:23:35 »
Der richtige Code (unter COM/OLE):

Set notesDatabase = notesDbDirectory.OpenMailDatabase( )


hth

Thomas

Offline MyPass

  • Frischling
  • *
  • Beiträge: 3
Re: Per VBA von unterschiedlichen Mail-Files versenden
« Antwort #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!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz