Autor Beitrag
salsatigre
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.04.03 13:54 
Hy @ all,

leider gibt's ja keine vernünftige Literatur sowie keine Möglichkeit Makros unter Outlook2000 aufzuzeichnen um folgende Aufgabe zu lösen.

:idea: Idee: Per Delphi einen Auftrag im Postfach eines anderen Benutzers anlegen.

ausblenden volle Höhe 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:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
function TForm1.OutlookAufgabeEintragen(strPostfach, strSubject, strBody,
  strStatus, strTo: String; tdtTermin, tdtFaellig: TDateTime): String;
var
  aOutlook   : Variant;
  aMapi     : Variant;
  aTask      : Variant;
  aTaskItem : Variant;
  aReci     : Variant;
  Absender    : TMapiRecipDesc;
begin
  try
    aOutlook := CreateOLEObject('Outlook.Application');
    aMapi := aOutlook.getNamespace('MAPI');

    //* Aufgabe zu den Outlook-Aufgaben eines Benutzers hinzufügen
    if strPostfach <> '' then begin
      aReci := aMapi.CreateRecipient(strPostfach);     // zuständige Person
      try
        aTask := aMapi.GetSharedDefaultFolder(aReci, $0000000D);
      except
        ShowMessage('Outlook kennt mindestens einen Namen nicht. Die Aufgabe '+
            'kann nicht in die Outlook-Aufgaben eingetragen werden.');
        Exit;
      end;
    end else begin
      //* Aufgabe zu den eigenen Outlook-Aufgaben hinzufügen
      try
        aTask := aMapi.GetDefaultFolder($0000000D);
      except
        ShowMessage('Outlook kennt mindestens einen Namen nicht. Die Aufgabe kann '+
            'nicht in die Outlook-Aufgaben eingetragen werden.');
        Exit;
      end;
    end;
    aTaskItem := aTask.Items.Add($00000003);
    aTaskItem.Subject := strSubject;    //* WideString
    aTaskItem.Body := strBody;       //* WideString
    aTaskItem.Status := strStatus;    //* WideString
    aTaskItem.StartDate := tdtTermin;  //* DateTime
    aTaskItem.DueDate := tdtFaellig;    //* DateTime
    aTaskItem.Display;            //* Aufgabe anzeigen
    aTaskItem.Save;
    aTaskItem.Assign;
    aTaskItem.Recipients.Add(strTo);   //* WideString
    aTaskItem.Send;

    Result := aTaskItem.EntryID;
  except
    ShowMessage('Der Outlook-Aufgabeneintrag kann nicht geöffnet werden, '+
      'da auf diesem PC kein Outlook installiert ist.');
    Result := '';
  end;
end;


Klappt bis auf die anzeige von ca. 4-5 Warnungen von Outlook, daß jemand fremdes auf die email...blabla zugreift. :cry:
Ist natürlich megaärgerlich!

Die 3 Zeilen Code (.assign - .send) erreichen, daß der Empfänger die Aufgabe vorgeschlagen bekommt. Werden Sie weggelassen, erfolgt der Eintrag stillschweigend.

Aus anderen Einträgen habe ich dann die Prozedur:
Zitat:
SendMail(Subject,Mailtext, FromName,FromAdress, ToName, ToAdress, AttachedFileName, DisplayFileName:string; ShowDialog:boolean);

von Christian "NineBerry" Schwarz benutzt aber die mail kam immer mit unzustellbar zurück!!

Kann mir jemand beim Ausschalten dieser Warnmeldungen helfen oder eine ähnlich gestaltete Prozedur like
SendMail geben, damit ich den Empfänger auf seine neuen ToDo's hinweise? :)

_________________
programmers doesn't die
they only gosub ..... aaaargh

PS: Version Delphi 6 SP 1