【发布时间】:2014-04-26 09:33:20
【问题描述】:
数百个 Windows 8 客户端中大约有 2-3 个在 2-3 周前开始收到此消息。
每个 Wireshark 在连接关闭之前的最后一次传输是
'2.0.0 准备启动 TLS'
代码sn-p:
Smtp := TIdSMTP.Create(nil);
try
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(smtp);
try
Smtp.OnStatus := IdSMTP1Status;
Smtp.OnWorkBegin := IdSMTP1WorkBegin;
Smtp.OnWorkEnd := IdSMTP1WorkEnd;
Smtp.OnWork := IdSMTPWork;
Smtp.Host := 'smtp.gmail.com'
Smtp.Port := 487, 565 both tried here;
Smtp.Username := 'the email@gmail.com'
Smtp.Password := 'The password'
// TLS for Gmail, etc
if UseSSL then // true
begin
Smtp.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
if Smtp.Port = 465 then
Smtp.UseTLS := utUseImplicitTLS
else
if Smtp.Port = 587 then
Smtp.UseTLS := utUseExplicitTLS
else
Smtp.UseTLS := utUseExplicitTLS;
IdSSLIOHandlerSocketOpenSSL1.Host := 'gmail smtp again'
IdSSLIOHandlerSocketOpenSSL1.Destination :=
Smtp.Host + ':' + IntToStr(Smtp.Port);
IdSSLIOHandlerSocketOpenSSL1.Port := Smtp.Port;
end;
try
Smtp.Connect;
sTempFileName := data1.GetSettingsFileFolder+'\tmp.email';
EmailMessage.SaveToFile(sTempFileName);
AssignFile(F,sTempFileName);
Reset(F);
iFileSize := FileSize(F) * 128;
CloseFile(F);
SysUtils.DeleteFile(sTempFileName);
StatusForm.SetProgress(0,iFileSize);
Smtp.Send(EmailMessage);
except on E:Exception do
begin
MessageDlg(E.Message, mtError, [mbOK], 0);
Exit;
end;
end;
finally
IdSSLIOHandlerSocketOpenSSL1.Free;
end;
finally
EmailMessage.MessageParts.Clear;
if Smtp.Connected then smtp.Disconnect;
Smtp.Free;
end;
【问题讨论】:
标签: delphi gmail delphi-xe indy