![]() |
E-Mail-Eigenschaft ändern
Hallo,
ich komme nicht weiter. Ich brauche mal wieder eure Hilfe. Ich habe ein Programm geschrieben, in dem ich mit nachfolgenden Code eine E-Mail mit Anhang verschicke. Auf dem Rechner ist Outlook 2003 installiert. Es funktioniert fast alles. Nur bei einigen Empfängern kommt der Anhang als "winmail.dat" an und kann von denen nicht gelesen werden. Die Ursache habe ich gefunden. Outlook und alle Kontakt wurden, wie ![]() ![]() Wenn ich jetzt eine E-Mail manuell erstelle und an einen in den Kontakten gespeicherten Empfänger senden, kommt der Anhang richtig an. Wenn ich aber die E-Mail mit meinem Programm erstelle, muß ich vor dem Senden immer die E-Mail-Eigenschaft "Internetformat" des Empfängers manuell auf "Nur Text" ändern, auch wenn die E-Mail-Adresse in den Kontakten mit der richtigen Einstellung gespeichert ist. Wie kann ich beim Erstellen der E-Mail mit meinem Programm sicherstellen, das die E-Mail im Textformat gesendet wird, ohne das der Nutzer diese Eigenschaft manuell ändern muß? Ich hoffe ihr könnt mir helfen. Gruß Klaus der Code:
Delphi-Quellcode:
function Create_Email(eHandle: Hwnd; eReceiver, eSubject, eBody, eFiles: String): integer;
const MaxFiles = 255; type TAttachAccessArray = array [0 .. MaxFiles] of TMapiFileDesc; var Mapi_Message: TMapiMessage; Receip : TMapiRecipDesc; Attachments : TAttachAccessArray; i : integer; Mapi_Session : Cardinal; WndList : Pointer; FileList : TStringList; FileName : array [0 .. MaxFiles] of AnsiString; begin result := MapiLogon(eHandle, Nil, Nil, Mapi_Logon_Ui or Mapi_New_Session, 0, @Mapi_Session); if result = Success_Success then begin FillChar(Mapi_Message, SizeOf(Mapi_Message), #0); FillChar(Receip, SizeOf(Receip), #0); if eReceiver <> '' then begin Receip.ulReserved := 0; Receip.ulRecipClass := Mapi_To; Receip.lpszName := PAnsiChar(AnsiString(eReceiver)); Receip.lpszAddress := PAnsiChar('SMTP:' + AnsiString(eReceiver)); Receip.ulEIDSize := 0; Mapi_Message.nRecipCount := 1; Mapi_Message.lpRecips := @Receip; end; FileList := TStringList.Create; try FileList.Text := eFiles; if FileList.Count > 0 then begin if FileList.Count > MaxFiles then begin result := -MaxInt; exit; end; for i := 0 to FileList.Count - 1 do begin FileName[i] := AnsiString(FileList[i])+#0; Attachments[i].ulReserved := 0; Attachments[i].flFlags := 0; Attachments[i].nPosition := ULONG($FFFFFFFF); Attachments[i].lpszPathName := PAnsiChar(FileName[i]); Attachments[i].lpszFileName := Nil; Attachments[i].lpFileType := Nil; end; Mapi_Message.nFileCount := FileList.Count; Mapi_Message.lpFiles := @Attachments; end; finally FileList.Free; end; if eSubject <> '' then Mapi_Message.lpszSubject := PAnsiChar(AnsiString(eSubject)); if eBody <> '' then Mapi_Message.lpszNoteText := PAnsiChar(AnsiString(eBody)); WndList := DisableTaskWindows(0); try result := MapiSendMail(Mapi_Session, eHandle, Mapi_Message, Mapi_Dialog, 0); // original! finally EnableTaskWindows(WndList); end; MapiLogOff(Mapi_Session, eHandle, 0, 0); end else result := -result; end; |
AW: E-Mail-Eigenschaft ändern
Schalte in Outlook den Versand im RTF-Format ab
|
AW: E-Mail-Eigenschaft ändern
Im Outlook steht natürlich alles auf TEXT (Nachrichtenformat und Internetformat). Habe es ganau so wie in den Links meines 1. Threads angegeben gemacht. Dennoch ist das Internetformat bei einem neuen Empfänger das olle RTF-Format. Ootlook sendet dann auch in diesem Format.
Muß vielleicht noch ein Cache geleert werden? |
AW: E-Mail-Eigenschaft ändern
Auch der Exchange Server, der im Hintergrund von Outlook werkelt hat über das Format mitzuentscheiden.
Der Administrator soll mal etwas tun für sein Geld und im Exchange Server die entsprechenden Einstellungen vornehmen. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz