.NET SMTPClient - 待发邮件存储在哪里?

标签 .net smtpclient outgoing-mail

如果我已将一些电子邮件排队等待通过 System.Net.Mail.SMTPClent 发送,我在哪里可以找到这封邮件?对于 Windows SMTP 客户端,它位于 C:\inetpub\mailroot 文件夹中 - .NET 客户端是否有类似的文件夹?

编辑:这是一个例子。如果我关闭 XP 计算机上的传出 SMTP 服务器,然后运行一个发送十多封电子邮件的应用程序,它们会在某个地方排队,因为 .NET SMTPClient.Send 调用成功。几个小时后,我启动了本地 SMTP 服务器,邮件突然飞快地离开了。期间在哪里?同样的行为发生在我的 Vista 桌面上,虽然我没有本地 SMTP 服务器——我可以通过在防火墙上阻止端口 25 来复制该功能,然后邮件在某处排队。在哪里?

这个问题的原因是我想在我拥有的服务器上重新启用 SMTP 服务,但我不知道在此期间排队的是什么,我想确保当我重新时队列是干净的 -启用服务。这样一来,客户就不会突然收到非常非常旧的排队电子邮件。

编辑 : 很明显,我不知道我在说什么。当我在 Vista 上执行此操作时:

    Dim mm As New System.Net.Mail.MailMessage("me@me.com", "you@you.com", "Testing", "this is a test")

    Dim s As New System.Net.Mail.SmtpClient("localhost")
    s.DeliveryMethod = Mail.SmtpDeliveryMethod.PickupDirectoryFromIis
    s.Send(mm)

我得到一个异常(exception),因为我没有 IIS 拾取文件夹。将其更改为“Mail.SmtpDeliveryMethod.Network”会立即导致异常,因为我没有运行 SMTP 服务器。我将在服务器 2003 上对此进行测试,但我可以发誓这两者在过去都有效。如果需要,我将进行更多测试并修改问题。

最佳答案

从 SmtpClient 的 MSDN 页面的外观来看,它是可配置的。您可以使用 DeliveryMethod属性来决定是否立即发送邮件,是否将其排入 IIS 拾取文件夹(可能是 C:\inetpub\mailroot)或是否放置在您选择的文件夹中(由 PickupDirectoryLocation 属性指定)。

关于.NET SMTPClient - 待发邮件存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384119/

相关文章:

email - 无法使用 Gmail 从 Azure VM 发送邮件

c# - .NET 请求浏览器将 Opera 识别为 Chrome

c# - 在 aspx 页面之间传递 C# 对象

c# - 基本的 DI/IoC 问题 - 架构,SimpleInjector

c# - 查询为空时的最大返回值

git send-email 发送邮件失败

来自静态帮助程序方法的 C# SmtpClient SendAsync?

.net - .NET 3.5 中的 SmtpClient SendAsync