Autor Beitrag
Steve1024
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Sa 25.08.07 09:59 
Hi,

ich möchte ein Tool schreiben um die Öffentlich Ordner von MS Exchange auf eine Lotus Notes .nsf Datenbank zu migrieren.
Auf Notes kann ich soweit auch gut zugreifen.
Nun mein Problem:
Ich erstelle im Notes ein neue Dokument (memo bzw. mail). Übertrage alle notwendigen informationen und speicher das ganze. Damit wird das ganze in Entwürfe gespeichert.
Nun habe ich den Befehl PutInFolder gefunden, mit welche ich das ganze eigentlich in den Posteingang (oder einen anderen Ordner) verschieben können sollte. Nur: Es bleibt in den Entwürfen. So habe ich die selbe Mail in Entwüfe und Posteingang. Wenn ich nun die Mail in den Entwürfen händisch lösche, sind beide weg.

Hat von euch einer eine Ahnung wie man das Problem lösen kann? Ich zähl auf euch *g*

Gruße Steve

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
var
  NotesSession: Variant;
  Database, Template, View: Variant;
  Mail: Variant;
  vI : Integer;
begin 
  NotesSession := CreateOleObject('Notes.Notessession');
  Template := NotesSession.GetDatabase('','Mail6.ntf',TRUE);
  IF not Template.IsOpen THEN
    Template.Openmail;
  Database := NotesSession.GetDatabase('','TestDB01',TRUE);
  IF not Database.IsOpen THEN
    Database.Openmail;
  IF not Database.IsOpen THEN
  begin
    Template.CreateFromTemplate('','TestDB01',FALSE);
    Database := NotesSession.GetDatabase('','TestDB01',TRUE);
    IF not Database.IsOpen THEN
      Database.Openmail;
  end;

  Database.Title := 'Test Mailbox';
  Database.Replicate('');
  View := Database.GetView('($Inbox)');
  FOR vI := 0 to 10-1 do
  begin
    Mail:=Database.Createdocument;
    Mail.Appenditemvalue('From','info@pricosoft.de');
    Mail.Appenditemvalue('SendTo','du@pricosoft.de');
    Mail.Appenditemvalue('Subject','Blub_' + IntToStr(vI));
    Mail.Appenditemvalue('Body','Text');
    Mail.Save(TRUE,FALSE,FALSE);
    // in Posteingang verschieben (kopieren oder was auch immer)
    Mail.PutInFolder('($Inbox)',TRUE);
    // aus Entwürfe löschen
    Mail.RemoveFromFolder('($Drafts)');
  end;
end;
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 25.08.07 22:16 
Moin!

user profile iconSteve1024 hat folgendes geschrieben:
Ich erstelle im Notes ein neue Dokument (memo bzw. mail). Übertrage alle notwendigen informationen und speicher das ganze. Damit wird das ganze in Entwürfe gespeichert.

Das ist zunächst auch mal korrekt so (jedenfalls aus Sicht von Notes ;)).

user profile iconSteve1024 hat folgendes geschrieben:
Nun habe ich den Befehl PutInFolder gefunden, mit welche ich das ganze eigentlich in den Posteingang (oder einen anderen Ordner) verschieben können sollte.

Nein, das ist was anderes; der Posteingang in der Standard-R6-Schablone ist kein Ordner, sondern nur eine Ansicht. Deshalb wird das IMHO nicht damit klappen; und ich fürchte auch, das du das mit den Standard-Funktionen auch nicht erreichen können wirst (also eine Mail-Dokument so in die Datenbank einzutragen, dass es wie eine empfangene Mail aussieht, ohne an den Feldern des Dokuments entsprechende manuelle Änderungen vorzunehmen, als ob sie der Mail-Router-Task ausgeführt hätte :nixweiss:).

user profile iconSteve1024 hat folgendes geschrieben:
Nur: Es bleibt in den Entwürfen. So habe ich die selbe Mail in Entwüfe und Posteingang. Wenn ich nun die Mail in den Entwürfen händisch lösche, sind beide weg.

Das Verhalten ist auch so völlig korrekt.

user profile iconSteve1024 hat folgendes geschrieben:
Hat von euch einer eine Ahnung wie man das Problem lösen kann?

Leider habe ich dafür auch keine Lösung zur Hand... :? Schau mal in der IBM-Knowledge-Base (bzw. Notes-NB) oder in den diversen Notes-Foren; das ist eigentlich kein Delphi-Problem. :mahn:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Sa 25.08.07 22:52 
Hast du mir vielleicht einen Link dazu?? Ich habe leider nichts gefunden... weder über google noch über IBM.
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Di 28.08.07 17:25 
OK.. ich habe eine Antwort darauf gefunden...
Man nehme eine Empfangene e-Mail und probiere alle Parameter aus... und irgendwann funktioniert es... *g*

Also auch für alle Anderen.. die wichtigen Zeilen sind:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var vDT : TDateTime; Document : Variant;
begin
  { ... }
  Document.Appenditemvalue('Form','Memo');
  Document.Appenditemvalue('DeliveredDate',vDT);
  Document.Appenditemvalue('PostedDate',DateTimeToStr(vDT));
end;