C# 使用 smtpClient 取消发送邮件
C# cancel an email sending using smtpClient
我想拦截发送事件,并在实际发送之前取消电子邮件。我的意思是:每次用户单击客户端中的发送按钮(当然使用 smpt)时,我想取消发送操作并向电子邮件的附件(如果有)和正文添加一些自定义内容
编辑:
这就是我想要实现的目标:
当用户点击发送按钮时,假设来自 Windows 10 的邮件应用程序,我不想实际发送邮件,我只想取消发送操作,修改电子邮件(正文,附件) , 然后才发送
坦率地说,上面写满了 XY problem。
一旦您调用 Send
,就没有取消消息的机制 - class 在发送电子邮件或其他任何内容之前不会引发任何事件,它只是发送它。在发送消息之前,请确保您确实已准备好发送消息。
无论如何,实际用例很少;假设,只是为了争论,Send
操作需要 2 秒(而且很容易花费更少);在那 2 秒内,某人改变主意(或者甚至能够迅速采取行动以阻止它熄灭)的几率是多少?
您最好完全构建电子邮件消息然后发送(而不是调用 Send
、取消、完成构建,然后再次发送)。
TL;DR 你不能,不应该,也不需要取消 Send
操作 - 只是在你之前不要启动它知道你准备好了。
我想拦截发送事件,并在实际发送之前取消电子邮件。我的意思是:每次用户单击客户端中的发送按钮(当然使用 smpt)时,我想取消发送操作并向电子邮件的附件(如果有)和正文添加一些自定义内容
编辑:
这就是我想要实现的目标: 当用户点击发送按钮时,假设来自 Windows 10 的邮件应用程序,我不想实际发送邮件,我只想取消发送操作,修改电子邮件(正文,附件) , 然后才发送
坦率地说,上面写满了 XY problem。
一旦您调用 Send
,就没有取消消息的机制 - class 在发送电子邮件或其他任何内容之前不会引发任何事件,它只是发送它。在发送消息之前,请确保您确实已准备好发送消息。
无论如何,实际用例很少;假设,只是为了争论,Send
操作需要 2 秒(而且很容易花费更少);在那 2 秒内,某人改变主意(或者甚至能够迅速采取行动以阻止它熄灭)的几率是多少?
您最好完全构建电子邮件消息然后发送(而不是调用 Send
、取消、完成构建,然后再次发送)。
TL;DR 你不能,不应该,也不需要取消 Send
操作 - 只是在你之前不要启动它知道你准备好了。