我有64位Windows 7和我的delphi sendmail在尝试第二次发送电子邮件时崩溃,有时甚至只是等待第一封发送邮件完成。相同的应用程序适用于Windows Vista。
以下是我发送邮件时的测试程序:
procedure TForm1.SendMail(const Subject, FileName: String);
var tmpName2, PFullFilePath, PSubject : Array[0..MAX_PATH] of AnsiChar;
MapiMessage : TMapiMessage;
MapiFileDesc : TMapiFileDesc;
MError : Cardinal;
begin
with MapiFileDesc do
begin
ulReserved:=0;
flFlags:=0;
nPosition:=Cardinal(-1);
StrPCopy(PFullFilePath, FileName);
lpszPathName:=PFullFilePath;
StrPCopy(tmpName2,ExtractFileName(FileName));
lpszFileName:=tmpName2;
lpFileType:=nil;
end;
with MapiMessage do
begin
ulReserved := 0;
StrPCopy(PSubject, Subject);
lpszSubject := PSubject;
lpszNoteText := nil;
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 0;
lpRecips := nil;
nFileCount := 1;
lpFiles := @MapiFileDesc;
end;
MError:=MapiSendMail(0,Application.Handle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
if MError<>0 then
Raise Exception.CreateFmt(IntToStr(MError), [MError]);
end;
我得到的错误/崩溃消息:
问题签名:
问题事件名称:APPCRASH
应用程序名称:mapitestp.exe
应用版本:0.0.0.0
申请时间戳:4d82c905
故障模块名称:ntdll.dll
故障模块版本:6.1.7600.16559
故障模块时间戳:4ba9b29c
例外代码:4000001f
异常抵消:000a1dcf 操作系统版本:6.1.7600.2.0.0.256.1
地区ID:1033
附加信息1:d1ab
附加信息2:d1ab624ec7d094c26a73530c245a3468
附加信息3:d1ab
附加信息4:d1ab624ec7d094c26a73530c245a3468
非常感谢任何帮助或想法。感谢