我有 Windows 7 64 位,我的 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:d1ab624ec7d094c236a73530c245a
任何帮助或想法将不胜感激。谢谢