0

当通过任何 FTP 客户端上传文件时,我正在尝试在 IIS 6 中设置电子邮件通知警报。有谁知道如何做到这一点?

我发现了类似的东西,但不明白如何实现它: http ://forums.iis.net/t/1196793.aspx/1?How+to+add+email+notification+service+in+IIS+6+ 0+当+a+文件+是+上传+通过+FTP+

有人对此有任何见解吗?

function countFolders(strPath)
   dim objShell
   dim objFolder
   dim folderCount

   set objShell = CreateObject("shell.application")
   set objFolder = objShell.NameSpace(strPath)

   if (not objFolder is nothing) then
      dim objFolderItems

      set objFolderItems = objFolder.Items

      if (not objFolderItems Is Nothing) then
         folderCount=objFolderItems.Count
      end if

      set objFolderItem = nothing
   end if

   set objFolder = nothing
   set objShell = nothing

   countFolders=folderCount
end function
4

2 回答 2

0

您引用的帖子基本上表明了这一点:

  1. 创建一个检查文件夹(或文件夹)中文件数量的脚本(如您所见)。
  2. 创建运行总数的文件。也许将此值保存到数据库或另一个 txt 文件中。
  3. 如果文件数与上次运行检查时不同,则发送电子邮件。

它建议使用计划任务。这意味着仅在执行脚本时才在更新 FTP 时发送电子邮件。Windows 任务的好处是您可以随意运行它。因此,假设您不需要立即通知,您可以将脚本设置为每分钟运行一次、每 10 分钟运行一次或类似。

上面的问题是,如果人们也在删除文件,您可能会收到错过的通知。EG 假设您不想在删除文件时收到通知,这意味着如果我当前的文件计数为 10、3 和删除并添加 1,这意味着下次运行脚本时我有 8 个文件。无法知道文件已被删除/重新添加。在这种情况下,您要注意文件名和路径,记下它们,以便将现有路径与以前的路径进行比较!

我刚刚完成了一个非常相似的任务,但我有额外的奢侈。我编写了 FTP 客户端,它必须安装在所有客户端机器上才能将文件发送到我的 FTP。这意味着,在我的 FTP 程序中,我有一段额外的代码:OnUploadCompleted -> Send Notofication Email

于 2013-04-05T07:59:13.890 回答
0

您可以创建一个使用FileSystemWatcher的服务。

FileSystemWatcher 侦听文件系统更改通知。在提供的链接中是如何使用该类的一个很好的例子。

于 2013-04-05T08:11:58.777 回答