如何使用Synapse for Delphi中止SMTP发送操作?
发布时间:2020-12-15 09:30:07 所属栏目:大数据 来源:网络整理
导读:目前我正在测试Ararat Synapse在Delphi发送电子邮件. 本地函数创建TSMTPSend并发送电子邮件. 我怎样才能中止这个操作? 我已经设置了一个分配给SMTP.Sock.OnStatus的回调函数来执行一些状态输出. 当我想中止发送进度时,我想我可以在回调函数中使用TSMTPSend
目前我正在测试Ararat Synapse在Delphi发送电子邮件.
本地函数创建TSMTPSend并发送电子邮件. 我想做的事情看起来基本上就像 MyCallBack(Sender: TObject; Reason: THookSocketReason; const Value: string); begin if FCancelWasClicked then begin if Sender is TTCPBlockSocket then TTCPBlockSocket(Sender).StopFlag := True; // or TTCPBlockSocket(Sender).AbortSocket or CloseSocket end; end; 但StopFlag显示没有效果,AbortSocket / CloseSocket导致StackOverFlow,因为套接字将无休止地抽取HR_CloseSocket消息. 我做错了吗?还有其他选择吗? 解决方法
Synapse提供心跳功能,允许实现取消行为.
http://www.ararat.cz/synapse/doku.php/public:howto:heartbeat 处理OnHeartbeat事件,将HeartbeatRate属性设置为心跳之间的间隔,并设置StopFlag以取消操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |