Autor Thema: eMail aus Access  (Gelesen 10416 mal)

Offline Ottoeins

  • Frischling
  • *
  • Beiträge: 3
eMail aus Access
« am: 11.05.08 - 23:21:16 »
Hallo,

ich bin totaler Notes-Anfänger und habe folgendes Problem:
Mit dem VBA-Code aus Google kann ich eine eMail aus Access generieren, sie wird sofort gesendet. Ich möchte aber, daß die eMail nicht sofort gesendet wird sondern erst nach Betätigung des Senden-Buttons. Es würde mir auch reichen, wenn die eMail zunächst im Entwurfs-Ordner landet und dann händisch verschickt werden muß. Weiß einer Rat?

Gruß und noch schöne Pfingsten

Otto1




Code
Function SendNotesMail(MailTo$, KopieTo$, Mailtext$, MailAnhang$, _
                         MailAbsender$, MailBetreff$, Optional MailSenden As Boolean) As Boolean
                         
   Dim rtitem           As Object
   Dim EmbeddedObject   As Object
   Dim SessionNotes     As Object
   Dim NotesDB          As Object
   Dim NotesDoc         As Object
   Dim EmpfListe()      As String
   Dim EmpfCnt          As Integer
   Dim Pos1             As Long
    
    ' wenn die Betreffzeile leer ist, dann wird eine erzeugt
    If Trim$(MailBetreff) = "" Then
    End If

    On Error GoTo Err_Mail_Click
    
    ' An die laufende Lotus Notes Session anhängen
    Set SessionNotes = CreateObject("Notes.NOTESSESSION")
    
    ' Notes Datenbank-Objekt erstellen und initialisieren
    Set NotesDB = SessionNotes.GetDatabase("", "")
    NotesDB.OPENMAIL
    If NotesDB.IsOpen = False Then
        MsgBox "Bitte melden Sie sich vollständig in Notes an!", vbInformation + vbOKOnly
        Exit Function
    End If
    
    ' Empfängerliste erstellen
    EmpfCnt = 0
    Pos1 = InStr(MailTo, ";")
    While Pos1 > 0
        ReDim Preserve EmpfListe(EmpfCnt)
        EmpfListe(EmpfCnt) = Left(MailTo, Pos1 - 1)
        MailTo = Right(MailTo, Len(MailTo) - Pos1)
        Pos1 = InStr(MailTo, ";")
        EmpfCnt = EmpfCnt + 1
    Wend
    ReDim Preserve EmpfListe(EmpfCnt)
    EmpfListe(EmpfCnt) = MailTo
    
    ' Neues Notes-Dokument anlegen (Mail)
    Set NotesDoc = NotesDB.CreateDocument
    With NotesDoc
        .Form = "Memo"
        .Subject = MailBetreff
        .sendto = EmpfListe
        .CopyTo = KopieTo
        '.blindcopyto= Blindkopie an
        .Body = Mailtext & vbCrLf & MailAbsender
        '.DefaultMailSaveOption = 0
        '.MailSaveOption = 0
        .DeliveryReport = "B"
        .Importance = "2"
        '.logo = "Scania"
        .SaveMessageOnSend = True ' bei True wird ein Exemplar in Gesendet gestellt
        .ReturnReceipt = "1"
        .Sign = "1"
        '.encrypt ="0"
        '.Principal = session.UserName
        '.viewicon ="74"
        '.from = session.UserName
        '.SaveOptions = 0
        '.SecureMail = ""
        '.SenderTag = "F"

        ' Dateianhang
        If Trim$(MailAnhang) <> "" Then
            Const embed_ATT = 1454
            Set rtitem = .CreateRichTextItem(MailAnhang)
            Set EmbeddedObject = rtitem.EmbedObject(embed_ATT, "", MailAnhang, MailAnhang)
        End If
        
        
        MailSenden = False
        ' Mail Senden oder Speichern
        If MailSenden Then
           .Send True
        Else
           .Save
        End If
    End With

     SendNotesMail = True

    Set SessionNotes = Nothing
    Set NotesDB = Nothing
    Set NotesDoc = Nothing
    Set rtitem = Nothing
    Set EmbeddedObject = Nothing
    
Exit_Mail_Click:
Exit Function

Err_Mail_Click:
    MsgBox Err.Number & "-" & Err.Description
    SendNotesMail = False
    Resume Next
    
End Function



Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: eMail aus Access
« Antwort #1 am: 12.05.08 - 07:04:51 »
Nun, wenn du den Code gelesen ( und verstanden ) hast, dann wird dir auch der Parameter MailSenden As Boolean im Functionskopf aufgefallen sein.
Da hat der Code Author schon eine Möglichkeit geschaffen, das sofortige Senden zu unterbinden und die Mail lediglich zu speichern. Um das in den "Entwürfen" zu speichern, muss man lediglich ein paar Feldwerte setzen. Die sind mir allerdings nicht präsent.
Einfach mal eine Mail erstellen und als Entwurf speichern. Dann mit einer Mail vergleichen, die sofort versendet wurde. Schon hat man die Unterschiede und die Felder, die man setzen muss.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Ottoeins

  • Frischling
  • *
  • Beiträge: 3
Re: eMail aus Access
« Antwort #2 am: 12.05.08 - 20:02:18 »
Hallo Ulrich,

danke für Dein eMail. Den Parameter MailSenden habe ich auch gesehen. Allerdings verlangt Notes diesen Parameter, es ist nicht möglich über SAVE die eMail so zu speichern. Auch läßt Notes nicht die Möglichkeit zu, ohne die Vorgabe eines Empfängers die eMail zu generieren. Und somit wird die eMail also wie bereits oben erwähnt, sofort gesendet. Ich bräuchte die Möglichkeit, entweder die eMail ohne Empfänger zu generieren oder die eMail zunächst in den Entwurfsordner zu speichern.

Gruß Otto1

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eMail aus Access
« Antwort #3 am: 12.05.08 - 22:59:44 »
Ich befürchte, dieser Code wurde irgendwo "gefunden", aber nicht verstanden.

Zum letzten Posting:
Den Parameter MailSenden habe ich auch gesehen. Allerdings verlangt Notes diesen Parameter, es ist nicht möglich über SAVE die eMail so zu speichern.
Das ist Unfug. Der Parameter "MailSenden" ist Bestandteil der VBA-Routine und hat mit Notes so viel zu tun wie mein Garagentor mit dem Startpunkt "S" des Salzburger Flughafens.

Weiterhin:
Auch läßt Notes nicht die Möglichkeit zu, ohne die Vorgabe eines Empfängers die eMail zu generieren.
Auch falsch - im doppelten Sinne: Mit Notes (bzw. dem OLE- oder COM-Zugriff auf die Notes-API) wird zunächst ein *Dokument* erzeugt. Ob man dieses dann versendet oder nicht, *muss* man selbst entscheiden.

Wobei wir beim nächsten Punkt wären: Dieser Code-Bestandteil
Code
MailSenden = False
        ' Mail Senden oder Speichern
        If MailSenden Then
           .Send True
        Else
           .Save
        End If
sagt aus: Die Variable "MailSenden" wird zwangsweise auf False gesetzt, die folgenden Zeilen versenden daher das eMail überhaupt nicht.

So, wie der bisherige Code aussieht, wird ein derart erzeugtes Dokument auch in der Ansicht "Gesendet" angezeigt, da die Items "PostedDate", $MessageType und ExcludeFromView nicht angelegt werden.

Daher:
Ich habe keine Ahnung, was da nun codemässig wirklich getrieben wird. Das letzte Posting von "Otto1" lässt darauf deuten, dass der aktuelle Code anders aussieht als der gepostete.

Zum Code: Wenn nochmals Code gepostet wird, sollten unbedingt alle sowieso auskommentierten Zeilen auch gelöscht werden. Man kann keinem Hilfswilligen zumuten, dass er sich durch das Zeugs auch noch durchwühlt.

Tipp an "Otto1": Ohne die Dokumentation zum Domino-Designer und nur mit gefundenem Code geht hier gar nichts. Aber auch nur mit VBA-Kenntnissen sollte aber schon klar sein, dass in den gemachten Aussagen Widersprüche sein müssen.

Bernhard

Offline Ottoeins

  • Frischling
  • *
  • Beiträge: 3
Re: eMail aus Access
« Antwort #4 am: 13.05.08 - 22:38:27 »
Hallo Bernhard,

anstatt den VBA-Code zu kommentieren, solltest Du lieber eine ernsthafte Lösung anbieten.
Damit wäre mir und der Sache mehr geholfen.

REM-Zeilen dienen dem besseren Verständnis und gehören natürlich zum Code. Sind Objekt-
Paramenter auskommentiert, kann gerade hier die Lösung stecken.

Im übrigen, daß hier gar nichts geht, sehe ich auch! Deine schlauen Sprüche kannst Du Dir sparen.

Tip an Bernhard:
Laß Dein Garagentor wie es ist und widme Dich den Problemen. Aber sachlich.


Gruß Otto1

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: eMail aus Access
« Antwort #5 am: 13.05.08 - 22:49:26 »
ROTFL

*PLONK*
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eMail aus Access
« Antwort #6 am: 13.05.08 - 23:08:31 »
"Otto1" hat ja nicht mal das mit dem Garagentor verstanden ... Und ich habe mich noch mit dem Code - sogar mitsamt den sinnlos mitgeposteten auskommentierten Zeilen - auseinander gesetzt.

ROTFL? Heute nicht! Ich habe erstmal einen dicken Hals. Vielleicht morgen. *PLONK* - ja, da hier jemand offensichtlich seine Arbeit durch andere erledigt bekommen möchte und auf keinen der bisherigen Hinweise in irgendeiner Form eingegangen ist.

Ich bin draussen aus diesem Thread.
« Letzte Änderung: 14.05.08 - 00:09:10 von koehlerbv »

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: eMail aus Access
« Antwort #7 am: 13.05.08 - 23:48:23 »
Da hat doch tatsächlich wieder einmal einer ein Eigentor geschossen.
Respekt.

Boris

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: eMail aus Access
« Antwort #8 am: 14.05.08 - 07:21:17 »
Zitat
REM-Zeilen dienen dem besseren Verständnis

So wie z.B. hier ??

    ' wenn die Betreffzeile leer ist, dann wird eine erzeugt
    If Trim$(MailBetreff) = "" Then
    End If

Ich weiss auch gar nicht, warum Du hier die Welle machst und dich so aufplusters. Sowohl Bernhard als auch ich haben dir die Lösung ja bereits hier beschrieben.
Du musst das lediglich im Code umsetzen.

Du erwartest nicht ernsthaft, daß man dir diese Arbeit auch noch abnimmt, oder ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: eMail aus Access
« Antwort #9 am: 15.05.08 - 10:39:47 »
Zitat
anstatt den VBA-Code zu kommentieren, solltest Du lieber eine ernsthafte Lösung anbieten.
Damit wäre mir und der Sache mehr geholfen.

... ganz schön frech - sich als Anfänger hinstellen und erwarten, daß dir einer die Arbeit abnimmt. Die Hinweise von Ulrich und Bernhard sollten dir in dem Fall genügen...

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz