当我尝试在 Windows XP 中发送带有内联图像的电子邮件时收到错误“SMTP 传入数据超时”,我正在使用 Indy 10 的 tiburon 分支和以下代码发送带有内联图像的电子邮件:
MB := TIdMessageBuilderHtml.Create;
try
MB.PlainText.Assign(Text);
MB.Html.Assign(FHTML);
MB.HtmlFiles.Add('c:\Path\to\My\Image.jpg');
MB.FillMessage(IdMessage);
finally
MB.Free;
end;
if not IdSMTP.Connected then
IdSMTP.Connect;
IdSMTP.Send(IdMessage);
它只是发生在 Windows XP 中,在 Windows Vista 中,电子邮件和内联图像发送得很好。
显然它没有向服务器发送任何内容,它似乎在发送之前卡住了图像。
这是调用堆栈:
IdReplySMTP 497 +1 TIdReplySMTP.RaiseReplyError
IdTCPConnection 574 +1 TIdTCPConnection.RaiseExceptionForLastCmdResult
IdTCPConnection 724 +10 TIdTCPConnection.CheckResponse
IdTCPConnection 563 +2 TIdTCPConnection.GetResponse
IdTCPConnection 583 +4 TIdTCPConnection.SendCmd
IdTCPConnection 696 +4 TIdTCPConnection.SendCmd
IdSMTP 377 +2 TIdSMTP.DisconnectNotifyPeer
IdTCPConnection 517 +5 TIdTCPConnection.Disconnect
IdSMTP 476 +2 TIdSMTP.Disconnect
IdTCPConnection 828 +2 TIdTCPConnection.Disconnect
Email 130 +11 TEmail.Destroy
System 9806 +1 TObject.Free
EnviarEmail 322 +38 TFormEnviarEmail.Enviar
System 12106 +38 @HandleFinally
RtlUnwind
System 11589 +83 @HandleAnyException
KiUserExceptionDispatcher
RtlAppendUnicodeToString
IdMessageClient 873 +4 EncodeAttachment
IdMessageClient 1213 +252 TIdMessageClient.SendBody
IdMessageClient 1244 +283 TIdMessageClient.SendBody
IdMessageClient 1269 +12 TIdMessageClient.SendMsg
IdSMTPBase 251 +6 TIdSMTPBase.SendNoPipelining
IdSMTPBase 436 +4 TIdSMTPBase.InternalSend
IdSMTPBase 457 +1 TIdSMTPBase.Send
IdSMTP 415 +6 TIdSMTP.Send
IdSMTPBase 449 +6 TIdSMTPBase.Send
关于导致它的原因以及如何解决问题的任何线索?
谢谢。