Autor Thema: Mailsend über Notes via VBA(Excel2003)  (Gelesen 2075 mal)

Offline Anok

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Mailsend über Notes via VBA(Excel2003)
« am: 08.01.08 - 16:03:04 »
Hallo,

einige unserer User entwickeln mit VBA unter Excel2003 und möchten eine durch VBA generierte Mail inkl. Anhang via Lotus Notes versenden. Jedoch wenn dieses Skript(s. Code) ausgeführt wird kommt es zu sporadischen Fehlermeldungen (s. Bild im Anhang). Diese Fehlermeldung tritt nicht bei jedem User auf sondern wie gesagt nur sporadisch. Unsere eingesetzt Notes Version ist 6.5.5. Ein Fehler bzw. eine unterschiedliche ECL können wir ausschließen, da selbst mit einer komplett leeren ECL (ohne jegliche Berechtigungen) das Skript ausgeführt wird.

Um bei diesem User das Skript wieder lauffähig zu machen müssen die Notes Temp datein gelöscht werden. Anschließend läuft das Skript wieder für einen gewissen Zeitraum.


Code
Sub SendNotesMail()
Dim MailDB As Object
Dim UserName As String
Dim MailDBName As String
Dim MailDoc As Object
Dim Session As Object
Dim DATEIANHANG As String
Dim rtitem As Object
Dim EmbeddedObject As Object

DATEIANHANG = "C:\DTAUS1_VRR"

Set Session = CreateObject("Notes.NotesSession")

UserName = Session.UserName
MailDBName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, ""))) & ".nsf"

Set MailDB = Session.GetDatabase("", MailDBName)

If MailDB.IsOpen = True Then
Else
MailDB.OPENMAIL
End If

Set MailDoc = MailDB.CreateDocument

MailDoc.Form = "Memo"
MailDoc.sendto = "Testuser@Test.de"
MailDoc.Subject = "Belegloser Datenträgeraustausch"
MailDoc.body = "Sehr geehrte Kolleginnen und Kollegen,"


Const embed_ATT = 1454
Set rtitem = MailDoc.CreateRichTextItem("DATEIANHANG")
Set EmbeddedObject = rtitem.EmbedObject(embed_ATT, "", DATEIANHANG, "DATEIANHANG")

MailDoc.SAVEMESSAGEONSEND = True

MailDoc.PostedDate = Now()
MailDoc.Send 0, "Testuser@Test.de"

Set MailDB = Nothing
Set MailDoc = Nothing
Set AttachMe = Nothing
Set Session = Nothing
Set EmbedObj = Nothing

End Sub



Mit freundlichen Güßen
Denis
« Letzte Änderung: 08.01.08 - 17:25:26 von Anok »

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Mailsend über Notes via VBA(Excel2003)
« Antwort #1 am: 08.01.08 - 18:06:13 »
Hi,

erstmal willkommen im Forum.

So rein prizipiell ist ein "Sicherheitsalarm" keine Fehlermeldung - insofern Works As Designed.
Auf ein "ablehnen"/ENTER hin wird aber wohl deine Mail ohne Anhang versendet oder gibt einen Fehler aus.

Ob der ECL-Alert nun sauber gemeldet wird kann ich dir nicht sagen, würde aber behaupten, dass eigentlich die Meldung immer kommen sollte, da ja dein VBA keine Signatur liefert.

Zum Script würde ich Dir auf jeden Fall noch ein Errorhandling (on error...) empfehlen,
dann kanns Du auch abfangen, dass keien "leeren Mails" versendet werden, bzw. einen sauberen resume einbauen.

Und interessant finde ich auch diese Zeile:
...
Code
UserName = Session.UserName
MailDBName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, ""))) & ".nsf"

Set MailDB = Session.GetDatabase("", MailDBName)

If MailDB.IsOpen = True Then
Else
    MailDB.OPENMAIL
End If
...

Du versuchst anhand des Anwendernamens die MailDB zu lokal zu identifizieren und zu öffnen, nur 
wenn diese nicht da ist die tatsächlich (eigentlich zu bevorzugende) Maildb
-> die Abfrage if MailDB.IsOpen würde ich ganz weg lassen und immer über MailDB.OPENMAIL die db holen.
Dann bist Du (laut Arbeitsumgebung auch meist) direkt mit dem Server verbunden.

wobei Du in COM eigentlich statt MailDB.OPENMAIL
Code
Set notesDatabase = notesDbDirectory.OpenMailDatabase( )
verwenden solltest.

Es könnte also in Deinem Fall sein, dass die "Fehlermeldung" nur bei Usern kommt,
die gerade die lokale db nicht öffnen können
und die auf dem Server (MailDB.OPENMAIL) heranziehen-
Oder dass ein User seinen Notes-Client gerade offen/ nicht offen hat -> CreateObject("Notes.NotesSession") macht sie auf,
gerade eine/keine Verbindung zum Server besteht und
sich das ganze daran unterscheidet (schon getestet?)

Ansonsten (nur zum test!!!) schon mal versucht die "-no Signatur-" auf "allesmögliche erlaubt" zu stellen?

Gruss, Pete(r)




pete(r)

Offline Anok

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: Mailsend über Notes via VBA(Excel2003)
« Antwort #2 am: 09.01.08 - 14:17:07 »
Danke für die Antwort.

Wir werden deinen Vorschlag testen und ich gebe dann nochmal Bescheid.

Gruß
Denis

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz