procedure TYJ.Button2Click(Sender: TObject);
var
SendMailExchang: TMessageExchanger;
lMessage: TMessage;
lAccount, FAccount: TMailAccount;
MailSystem: TMailSystem;
lMailContent: TMemoryStream;
begin
SendMailExchang := TMessageExchanger.Create(nil);
lMessage := TMessage.Create(nil);
lAccount := TMailAccount.Create;
MailSystem := TMailSystem.Create;
try
SendMailExchang.MessageKind := TMessageKind.mkSend;
lAccount.SMTPHost := 'smtp.sina.com';
lAccount.SMTPPort := 25;
lAccount.POPHost := 'pop.sina.com';
lAccount.POPPort := 110;
lAccount.MailAddress := 'gxwit001@sina.com';
lAccount.UserID := 'gxwit001';
lAccount.Password := 'a123456';
lAccount.AccountID := 'gxwit001';
lMessage.From := 'gxwit001@sina.com'; //发件人
lMessage.SendTo := 'gxwit007@163.com'; //收件人
lMessage.Subject := '时间' + sysUtils.DateTimeToStr(Business.Data.SysSrv.SysService.time) ; //mail tatil
lMessage.Body.Text := '邮件测试,多多打扰请见谅11!';
lMessage.ContentFormatType := TContentFormatType.ftHTML; // 设置正文内容格式
if lAccount <> nil then
begin
lMailContent := TMemoryStream.Create; //用于存放邮件的正文
lMailContent.Clear;
lMessage.SaveToStream(lMailContent);
lMailContent.Position := 0; //移动流的指针
try
if lAccount.Verify then
begin
if lAccount.DifferPOP then
SendMailExchang.SMTPMessages.Add(lAccount.VerifyAccount,
lAccount.VerifyPassword, lAccount.SMTPHost,
lMessage.From, lMessage.SendTo, lMailContent, lAccount.SMTPPort,false)
else
SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
lAccount.SMTPHost, lMessage.From, lMessage.SendTo, lMailContent,
lAccount.SMTPPort,false);
end
else
SendMailExchang.SMTPMessages.Add(lAccount.SMTPHost, lMessage.From,
lMessage.SendTo, lMailContent, lAccount.SMTPPort,false);
finally
lMailContent.Free;
lAccount.Free;
end;
SendMailExchang.Active := True; //发送邮件
sysUtils.Sleep(300);
dialogs.showmessage('邮件发送成功!');
end;
finally
lMessage.Free;
MailSystem.Free;
SendMailExchang.Free; // SendMailExchang对象一定要最后释放
end;
end;
上面的代码+测试的邮箱,帮我测试一下。
运行功能后,点按钮发送,有时在接收的邮箱'gxwit007@163.com'中可以接收到邮件,但是再点第二次的时候,就接收不到了。请问,这怎么解决? |