AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MAPI - /Send receive muss manuell getätigt werden/ winmail.dat
Thema durchsuchen
Ansicht
Themen-Optionen

MAPI - /Send receive muss manuell getätigt werden/ winmail.dat

Offene Frage von "Nicodius"
Ein Thema von Nicodius · begonnen am 23. Mär 2011 · letzter Beitrag vom 24. Mär 2011
Antwort Antwort
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

MAPI - /Send receive muss manuell getätigt werden/ winmail.dat

  Alt 23. Mär 2011, 10:27
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
Nico Müller

Geändert von Nicodius (24. Mär 2011 um 10:25 Uhr)
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#2

AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat

  Alt 24. Mär 2011, 09:48
Irgendwer eine Idee? *push*
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat

  Alt 24. Mär 2011, 10:12
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:
http://www.techrepublic.com/article/...pisend/1056016

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.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#4

AW: MAPI - /Send receive muss manuell getätigt werden/ winmail.dat

  Alt 24. Mär 2011, 10:24
Vielen Dank für die Antwort. Also programmiertechnisch passt alles?

Super. Dann werd ich die Frage zu machen.

Liebe Grüße


Nico
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz