【问题标题】:Send email asynchronously from an WCF 4 REST service从 WCF 4 REST 服务异步发送电子邮件
【发布时间】:2011-06-07 19:49:58
【问题描述】:

我有一个 WCF 4 REST 服务,它进行一些处理,然后立即返回。现在需要在每次调用此服务时异步发送一封电子邮件。有没有什么方法可以实现这一点,而无需在数据库中对电子邮件进行排队,然后使用 Windows 服务发送电子邮件?

【问题讨论】:

  • 你不能简单地使用ThreadPool.QueueUserWorkItem(YourSendEmailMethod) 吗?
  • 将 ThreadPool.QueueUserWorkItem 与 WCF 一起使用是个好主意吗?这不会减少可用于服务 REST Web 服务的线程数吗?
  • 不知道是否对 WCF 有影响,但 ThreadPool 的想法是在可能的情况下完成这项工作,即释放线程时。当然这会消耗一个线程,但是无论你选择什么路径,总会有一个线程来完成这项工作。

标签: c# .net email


【解决方案1】:

我从未使用过它,但 SmtpClient.SendAsync 似乎是适合这项工作的工具。

来自 MSDN,强调我的:

将指定的电子邮件信息发送到 用于传送的 SMTP 服务器。这个 方法不会阻塞调用 线程并允许调用者通过 方法的对象是 操作完成时调用。

这样您的服务可以在发布发送电子邮件的请求后立即返回,您甚至可以注册回调以了解发送电子邮件操作何时完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2020-04-01
    • 1970-01-01
    • 2017-08-05
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多