C#取消使用smtpClient发送的电子邮件

时间:2017-07-14 15:52:06

标签: c# smtpclient

我愿意拦截发送事件,并在实际发送之前取消电子邮件。我meand:每次用户点击客户端中的发送按钮(当然使用smpt)我想取消发送操作并将一些自定义内容添加到电子邮件的附件(如果有的话)和正文

编辑:

这就是我想要实现的目标: 当用户点击发送按钮使用时,让我说来自Windows 10的邮件应用程序,我不希望邮件实际发送,我只想取消发送操作,修改电子邮件(正文,附件),然后才sendit

1 个答案:

答案 0 :(得分:1)

很坦率地说,这已经写了XY problem

一旦你拨打Send,就没有机会取消这条消息 - 班级在发送电子邮件或其他任何事件之前都没有提出任何事件,它只是发送它。只需确保您在发送邮件之前确实准备好发送邮件。

无论如何,实际的用例非常小;假设,仅仅为了论证,Send操作需要2秒钟(并且它可以轻松地减少很多);在这2秒内,有人会改变主意(甚至能够迅速采取行动阻止外出)的几率是多少?

您最好完全构建电子邮件然后发送(而不是致电Send,取消,完成构建,然后再发送)。

TL; DR 您不能,不应该取消Send操作 - 只是不要开始直到你知道你准备好了。