Autor Thema: OLE mit Delphi - als gelesen markieren  (Gelesen 2037 mal)

Offline dataspider

  • Frischling
  • *
  • Beiträge: 15
  • Geschlecht: Männlich
OLE mit Delphi - als gelesen markieren
« am: 18.07.06 - 19:30:03 »
Hallo,

ich versende aus Delphi Mails. Diese werden im Ordner Gesendet gespeichert und als ungelesen gekennzeichnet.
Gibt es über OLE einen Weg, diese als Gelesen zu markieren?

Ich habe die Klasse mal angehangen.

Das Versenden erfolgt mit:

FNotesMail := TrwNotesMail.Create(Self);
with FNotesMail do
begin
  OnStatusChange := doMailStatusChange;
  Password := '******';
  SendTo   := 'test@domain.de';
  Subject  := 'Test Delphi und Lotus Notes';
  BodyText.Add('Hallo ?');
  AttachFiles.Add('d:\test.rar');
  AttachFiles.Add('d:\test.txt');
  Connect;
  SendMail;
end;


Danke, Frank
Frank Reim

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: OLE mit Delphi - als gelesen markieren
« Antwort #1 am: 18.07.06 - 21:08:37 »
Hallo Frank,

wenn die Bordmittel nicht anschlagen (eigentlich wäre das
Code
//MailItem.Save(True, False, True);
aber das hast Du auskommentiert), dann werden die OLE-Methoden da wohl nicht mitspielen.

Das
Code
MailItem.ReplaceItemValue('MarkRead', True);
ist auf jeden Fall ein untauglicher Versuch, da das nichts mit Notes zu tun hat. Die Ungelesen-Markierungen werden DB-intern verwaltet, und das immer User-bezogen. Muss ja auch so sein.

Hier musste ich wieder schmunzeln:
Code
except
Status := 'Mail konnte nicht gesendet werden...';
// Scheisse
end;
Da zeigt sich wieder, welches die Sprache ist, die der Programmierer wirklich perfekt beherrscht  ;D

Bernhard

Offline dataspider

  • Frischling
  • *
  • Beiträge: 15
  • Geschlecht: Männlich
Re: OLE mit Delphi - als gelesen markieren
« Antwort #2 am: 19.07.06 - 09:48:17 »
Hallo Bernhard,

MailItem.Save(True, False, True); speichert bei mir die Mail im Ordner Entwürfe.
Der letzte Parameter heisst MarkRead und hier kann ich angeben, ob die Mail als gelesen markiert wird oder nicht.

MailItem.ReplaceItemValue('MarkRead', True);
Hab ich schon bemerkt, dass es nicht funktioniert. Aber leider kann man auch aus der erzeugten Unit für Delphi nur die Header lesen, aber nicht die gültigen Parameter. Dafür muss ich mich dann sicher durch die Notes - Hilfen wühlen.
Aber da ich recht wenig Erfahrung damit habe, ist es schon mühsam.

Und - verdammt - man sollte doch seine Codeschnipsel zumindest von schnellen Kommentaren bereinigen, bevor man sie öffentlich macht.  ;)

Es ist auch nicht so schlimm, wenn es nicht lösbar ist. Es ist halt nur bei denen, die viele Mails versenden, etwas verwirrend, wenn beim Start von Notes immer eine rote Zahl erscheint, und dann sind gar keine Mails eingegangen.

...auf jeden Fall erst mal - Danke

Frank
Frank Reim

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: OLE mit Delphi - als gelesen markieren
« Antwort #3 am: 19.07.06 - 12:00:03 »
Der dritte Parameter im SAVE-Statement gibt mir doch jetzt ein kleines Rätsel auf. In der Hilfe steht:

markRead
Boolean. If True, the document is marked as read. If False (default), the document is not marked as read.

Es gibt zwei Möglichkeiten, wie Notes damit umgeht. Dazu ein kurzer Ausflug zu den Gelesen-Markierungen. Diese Markierungen werden für jeden Benutzer auf Dokumentenebene mitgeführt und bei jeder Änderung des Dokuments verworfen (das Dokument ist nach einem SAVE für Jeden (wieder) ungelesen).

Der dritte Parameter kann nun zwei Ausprägungen haben:
1. nach dem Speichern ist das Dokument für Jeden gelesen
2. die existierende Liste der Gelesen-Markierungen wird nicht verworfen - das Dokument ist für diejenigen, die es gelesen haben, gelesen, für diejenigen, die es noch nicht gelesen haben, weiterhin ungelesen.

Nur der zweite Ansatz macht m.E. Sinn, aber ich frage hier einmal in die Expertenrunde. Wie ist es denn nun ?
Situs vilate in isse tabernit.

Glombi

  • Gast
Re: OLE mit Delphi - als gelesen markieren
« Antwort #4 am: 19.07.06 - 12:05:24 »
Meiner Meinung nach auch Punkt 2.

Andreas

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: OLE mit Delphi - als gelesen markieren
« Antwort #5 am: 19.07.06 - 13:37:07 »
... schließe mich an => 2.

Toni
Grüßle Toni :)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: OLE mit Delphi - als gelesen markieren
« Antwort #6 am: 19.07.06 - 16:10:48 »
nach meinen Erfahrungen in R5 ist es Option 3: Das Dokument wird für den AKTUELLEN Benutzer nicht als ungelesen markiert... für alle anderen Benutzer ist das Dokument wieder ungelesen....

unter R5 war es so, dass ungelesen- Markierungen in der Desktop des Benutzers gespeichert wurden, weshalb ein Agent auf einem anderen Client die überhaupt nicht ändern konnte...

Evtl. hat sich ja in R6 der Befehl geändert (schliesslich wurde die Verwaltung der ungelesenen- Markierung komplett überarbeitet...)

P.S.: Habe gerade einen KB- Artikel gefunden, der zeigt: bis 5.0.12 einschliesslich war der Parameter quasi Nutzlos... hier wurde also wirklich was gefixt...Wen's interessiert:
Doc Number: 1095636

Gruß
Tode


ich habe
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: OLE mit Delphi - als gelesen markieren
« Antwort #7 am: 19.07.06 - 17:57:14 »
Torsten meint richtig, und in ND6 hat sich das nicht geändert
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: OLE mit Delphi - als gelesen markieren
« Antwort #8 am: 19.07.06 - 18:12:13 »
Das sollte man mal mit 2 Usern testen um das zu verifizieren.

Das Feature war jahrelang sowieso nutzlor:

Aus der KBASE:

Fix List for Lotus Notes and Lotus Domino Releases 6.0.5 and 6.5.4 Maintenance Release (MR)

Database   CYII5U535J   SPR# CYII5U535J - In Notes 4.5 and above, the NotesDocument.Save method features a third Boolean parameter which determines whether the saved document will be marked as "read" or "unread". A True value marks the document "read" while a False value marks it as "unread". When you run a LotusScript agent that contains the line "Call Doc.Save(True, False, True)" against documents in a server-based database, the last True value in the parameter list should mark the modified documents as "read". The modified documents, however, may still appear in the database views as "unread". Refreshing or rebuilding the view indices does not correct this inconsistency. The third parameter will work only when you save a new document.

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz