![]() |
MAPI - /Send receive muss manuell getätigt werden/ winmail.dat
Hi Leute,
nach langer Zeit habe ich nun wieder Delphi für ein paar kleine Anwendungen in Verwendung und wollte euch fragen ob ihr mir vl ein wenig helfen könnt bei folgendem Problem: Ich will für unser Ticketsystem ein kleines Tool schreiben welches Computerdaten und Logs sammelt, zippt und dann per email an unser Ticketsystem sendet. Generell benutze ich für die SendMail Funktion einen Code den ich eh hier oder bei Delphitreff mal gefunden habe aber stehe nun vor folgendem Problem: Wenn ich auf den Sendeknopf drücke kommt zuerst ein Fenster(ala "ein programm versucht eine mail in ihrem namen zu versenden, überlegen sie ob sie das wirklich wollen) - nach 5 sekunden kann man dann auf allow drücken und es absenden. Das Problem: wenn ich nicht manuell in Outlook auf "Send/Receive" drücke, wird die mail nicht wirklich ausgeschickt und wenn dann kommt die Mail leider nicht mit dem benötigten Anhang in unser System sondern mit einer Winmail.dat datei(falsche Formatierung).
Delphi-Quellcode:
function SendFileMail(const FileName: TFileName; const Subject, BodyText, RecipName, RecipAdress: String): String;
var mMessage: TMapiMessage; mlpFiles: TMapiFileDesc; mRecips: TMapiRecipDesc; begin if not FileExists(FileName) then begin Result := 'File "' + FileName + '" not found!'; Exit; end; with mRecips do begin ulRecipClass := MAPI_TO; lpszName := PChar(RecipName); lpszAddress := StrNew(PChar('SMTP:' + RecipAdress)); ulEIDSize := 0; lpEntryID := nil; end; with mlpFiles do begin flFlags := 0; nPosition := 0; lpszPathName := PChar(FileName); lpszFileName := nil; lpFileType := nil; end; with mMessage do begin lpszSubject := PChar(Subject); lpszNoteText := PChar(BodyText); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0;your lpOriginator := nil; nRecipCount := 1; lpRecips := @mRecips; nFileCount := 1; lpFiles := @mlpFiles; end; case MapiSendMail(0, 0, mMessage, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) of MAPI_E_AMBIGUOUS_RECIPIENT: Result := 'A recipient matched more than one of the recipient descriptor structures and MAPI_DIALOG was not set!'; MAPI_E_ATTACHMENT_NOT_FOUND: Result := 'The specified attachment was not found!'; MAPI_E_ATTACHMENT_OPEN_FAILURE: Result := 'The specified attachment could not be open!'; MAPI_E_BAD_RECIPTYPE: Result := 'The type of a recipient was not MAPI_TO, MAPI_CC, or MAPI_BCC!'; MAPI_E_FAILURE: Result := 'One or more unspecified errors occurred!'; MAPI_E_INSUFFICIENT_MEMORY: Result := 'There was insufficient memory to proceed!'; MAPI_E_LOGIN_FAILURE: Result := 'There was no default logon, and the user failed to log on successfully when the logon dialog box was displayed!'; MAPI_E_TEXT_TOO_LARGE: Result := 'The text in the message was too large to sent!'; MAPI_E_TOO_MANY_FILES: Result := 'There were too many file attachments!'; MAPI_E_TOO_MANY_RECIPIENTS: Result := 'There were too many recipients!'; MAPI_E_UNKNOWN_RECIPIENT: Result := 'A recipient did not appear in the address list!'; MAPI_E_USER_ABORT: Result := 'The user canceled one of the dialog boxes!'; end; end;
Delphi-Quellcode:
S := SendFileMail('C:\test\test.zip', 'Re: [ OTRS#: '+ temp +' ] SupportInfos', 'test',
'servicedesk@---.at','servicedesk@---.at'); Habt ihr eine Idee ob ich da an dem bestehenden Code was ändern kann damit diese beiden Probleme behoben werden können? Vielen Lieben Dank Nico |
AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat
Irgendwer eine Idee? *push*
|
AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat
Das manuelle Bestätigen liegt an deinem Outlook-Client.
Outlook wurde zu oft von Computerwürmer missbraucht, deshalb hat Microsoft jetzt (ähm.. im Jahr 2002 oder so) einen Riegel vorgeschoben. Man kann die Prüfung abschalten, aber es ist recht umständlich: ![]() Die Ursache für die Winmail.dat liegt beim Exchange-Server. EMails, die nach Aussen gehen (outbound) dürfen nicht im RTFormat gesendet werden. Irgendwo in den Einstellungen vom Exchange-Server kann man das konfigurieren. |
AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat
Vielen Dank für die Antwort. Also programmiertechnisch passt alles?
Super. Dann werd ich die Frage zu machen. Liebe Grüße Nico |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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