Stefan Koschke
2010-04-16 07:59:46 UTC
Hallo zusammen,
seit Umstieg auf D2010 funktioniert mein Mailversand per MAPI nicht mehr.
Unter D5 und 2007 ging es noch, es wurde Outlook angestoßen und nach
Sicherheitsabfrage die Mail verschickt.
Selbst die (aktuelle?) JCL-Mapi funktioniert nicht (Windows-Meldung
Programm funktioniert nicht mehr...), ich habe nicht die geringste
Ahnung warum!
Eine andere Komponente (TEmail) , die ich sonst benutzt habe weigert
sich beharrlich, da passiert überhaupt nichts mehr beim Senden.
Auch ausschließlich auf Code ohne Komponenten aufbauender Mailversand
funktioniert nicht mehr (siehe unten)!
Da aber gleichzeitig in letzter Zeit unser Exchange-Server umgestellt
wurde, habe ich keine Ahnung, wo ich suchen soll :-(
Könnte bitte jemand mal folgendes testen?
function SendFileMail(const FileName: ansistring; const Subject, BodyText,
RecipAdress: ansiString): 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 := PansiChar(RecipAdress);
lpszAddress := PansiChar(RecipAdress);
ulEIDSize := 0;
lpEntryID := nil;
end;
with mlpFiles do
begin
flFlags := 0;
nPosition := 0;
lpszPathName := Pansichar(filename);
lpszFileName := nil;
lpFileType := nil;
end;
with mMessage do
begin
lpszSubject := PansiChar(Subject);
lpszNoteText := PansiChar(BodyText);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
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;
Dann bekomme ich nach Abschicken folgende Meldung zurück:
Das E-Mail-System hatte ein Problem bei der Verarbeitung dieser
Nachricht. Microsoft Exchange versucht nicht, diese Nachricht erneut für
Sie zuzustellen. Versuchen Sie, diese Nachricht erneut zu senden, oder
wenden Sie sich mit dem folgenden Diagnosetext an Ihren Systemadministrator.
Mit Microsoft Exchange Server 2007 gesendet
Diagnoseinformationen für Administratoren:
Generierender Server: xxxxxxxxx.xxxxxxxxx
***@xxxxx.xx
#554 5.6.0 STOREDRV.Submit.Exception:PropertyValidationException; Failed
to process message due to a permanent exception ##
Ehe Fragen, warum nicht per SMTP kommen, das ist als zweiter Weg
natürlich im Programm enthalten und funktioniert auch problemlos!
Es gibt leider Kunden, die auf dem Outlook-Weg (auch mir der
Sicherheitsabfrage durch Windows) weiterhin bestehen, weil sie z.B. dann
im Postausgang die gesendeten Mails archivieren usw.
Ciao
Stefan
seit Umstieg auf D2010 funktioniert mein Mailversand per MAPI nicht mehr.
Unter D5 und 2007 ging es noch, es wurde Outlook angestoßen und nach
Sicherheitsabfrage die Mail verschickt.
Selbst die (aktuelle?) JCL-Mapi funktioniert nicht (Windows-Meldung
Programm funktioniert nicht mehr...), ich habe nicht die geringste
Ahnung warum!
Eine andere Komponente (TEmail) , die ich sonst benutzt habe weigert
sich beharrlich, da passiert überhaupt nichts mehr beim Senden.
Auch ausschließlich auf Code ohne Komponenten aufbauender Mailversand
funktioniert nicht mehr (siehe unten)!
Da aber gleichzeitig in letzter Zeit unser Exchange-Server umgestellt
wurde, habe ich keine Ahnung, wo ich suchen soll :-(
Könnte bitte jemand mal folgendes testen?
function SendFileMail(const FileName: ansistring; const Subject, BodyText,
RecipAdress: ansiString): 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 := PansiChar(RecipAdress);
lpszAddress := PansiChar(RecipAdress);
ulEIDSize := 0;
lpEntryID := nil;
end;
with mlpFiles do
begin
flFlags := 0;
nPosition := 0;
lpszPathName := Pansichar(filename);
lpszFileName := nil;
lpFileType := nil;
end;
with mMessage do
begin
lpszSubject := PansiChar(Subject);
lpszNoteText := PansiChar(BodyText);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
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;
Dann bekomme ich nach Abschicken folgende Meldung zurück:
Das E-Mail-System hatte ein Problem bei der Verarbeitung dieser
Nachricht. Microsoft Exchange versucht nicht, diese Nachricht erneut für
Sie zuzustellen. Versuchen Sie, diese Nachricht erneut zu senden, oder
wenden Sie sich mit dem folgenden Diagnosetext an Ihren Systemadministrator.
Mit Microsoft Exchange Server 2007 gesendet
Diagnoseinformationen für Administratoren:
Generierender Server: xxxxxxxxx.xxxxxxxxx
***@xxxxx.xx
#554 5.6.0 STOREDRV.Submit.Exception:PropertyValidationException; Failed
to process message due to a permanent exception ##
Ehe Fragen, warum nicht per SMTP kommen, das ist als zweiter Weg
natürlich im Programm enthalten und funktioniert auch problemlos!
Es gibt leider Kunden, die auf dem Outlook-Weg (auch mir der
Sicherheitsabfrage durch Windows) weiterhin bestehen, weil sie z.B. dann
im Postausgang die gesendeten Mails archivieren usw.
Ciao
Stefan