Mailkit如何发送和检查异步SMTP

时间:2016-08-24 15:42:25

标签: email asynchronous smtp mailkit

因此,网上有一些很好的例子可以说明如何使用Mailkit通过SMTP发送电子邮件。

通常以:

结尾
client.Authenticate(theSMTPUsername,theSMTPPassword);
client.Send(emailMessage);
client.Disconnect(true);

然而,如果需要异步,这是不好的:

client.Authenticate(theSMTPUsername,theSMTPPassword);
client.SendAsync(emailMessage);
client.Disconnect(true);

但是,我想知道的是异步发送已完成,或者它是否成功。在.Net本机库下,这是通过回调(事件处理程序)实现的。

是否可以为MailKit SendAsync定义“已完成”的回调处理程序,如果不是,最好的做法是发现它是否成功。

由于

1 个答案:

答案 0 :(得分:4)

您不希望拥有这样的代码:

client.Authenticate(theSMTPUsername,theSMTPPassword);
client.SendAsync(emailMessage);
client.Disconnect(true);

这将在异步发送操作完成之前断开连接。

相反,你想这样做:

client.Authenticate(theSMTPUsername,theSMTPPassword);
await client.SendAsync(emailMessage);
client.Disconnect(true);

当然,一旦你等待异步任务......现在你不需要一个完成的事件:)

也就是说,有一个MessageSent事件可以连接到:

http://www.mimekit.org/docs/html/E_MailKit_MailTransport_MessageSent.htm