cracklover Цитата: а можно отдельно скрипт?
Да можно, конечно. Никак не думал, что скачать 64 килобайта будет для кого-то проблемным. [more=> > >]
Код: ' SCRIPT: SendMailAfterUploads.vbs
' AUTHOR: Lummey
' DATE: 04/10/2006
' DESC: Log all uploaded files for a every user and sending e-mail about this
' RUS DESCRIPTION:
' Скрипт подвешивается на два обработчика сервера Gene6:
' - OnFileUploaded: здесь скрипт создаёт отдельный лог загруженных на FTP файлов по каждому юзеру.
' - OnClientDisconnected: здесь скрипт проверяет наличие лога по текущему юзеру
' и если лог сформирован, он отправляется в теле письма
' на указанный вами адрес с помощью консольного SMTP-клиента Blat.
' После завершения отправки лог уничтожается.
' Таким образом передаваемый лог всегда содержит только свежие данные.
' Протестировано на Gene6 v3.8.0 (build 34).
Sub OnFileUploaded()
Set fso1 = CreateObject("Scripting.fileSystemObject")
'If Not fso1.FolderExists(Server.LogPath & "UploadLogs\") Then 'если каталог для логов аплоуда не существует
' fso1.CreateFolder(Server.LogPath & "UploadLogs\") '- создадим его
'End If
PathForLogs = Server.LogPath & "UploadLogs\" ' каталог логов аплоуда
CurrentLogName = Client.Username & "_" & Domain.Name & "_uploads.log" ' имя файла лога
Set LogObj = fso1.OpenTextFile(PathForLogs & CurrentLogName, 8, true) 'открываем файл на запись
Line = FormatDateTime(Now) & " " & Client.Username & " " & Client.Filename & " " & (Client.Filesize/1000000) & " Мб"
LogObj.WriteLine(Line)
LogObj.Close
End Sub
Sub OnClientDisconnected()
PathForLogs = Server.LogPath & "UploadLogs\" ' каталог логов аплоуда
CurrentLogName = Client.Username & "_" & Domain.Name & "_uploads.log" ' имя файла лога
BlatLocation = Server.ServerPath & "Blat\blat.exe" ' каталог почтового клиента
' реквизиты письма
sTo = "ClientName@ClientMaulServer.ru" ' Поле 'КОМУ', почтовый ящик получателя
sSubject = "FTP: юзер " & Client.Username & " залил файло " & FormatDateTime(Now) ' ПОЛЕ 'ТЕМА'
sCharset = "Windows-1251" ' Кодировка письма. Не меняйте этот параметр
sSMTP = "smtp.MailServer.ru" ' адрес SMTP почтового сервера
sPort = "25" ' порт SMTP почтового сервера
sFeedBack = "YourLogin@MailServer.ru" ' ваш почтовый ящик, ящик отправителя
sLogin = "YourLogin" ' ваш SMTP-логин (AUTH)
sPass = "YourPassword" ' ваш SMTP-пароль (AUTH)
Set fso2 = CreateObject("Scripting.FileSystemObject")
If (fso2.FileExists(PathForLogs & CurrentLogName)) Then ' если файл лога для текущего юзера есть
Set WshShell = CreateObject("WScript.Shell") ' тогда мы его замылим
WshShell.Run """" & BlatLocation & """" & " " & """" & PathForLogs _
& CurrentLogName & """" & " -to " & sTo & " -subject "_
& """" & sSubject & """" & " -charset " & sCharset & " -server " & sSMTP _
& " -port " & sPort & " -f " & sFeedBack & " -u " & sLogin & " -pw "_
& sPass & " -ti 60", 1, True ' True - ждать завершения задачи
fso2.DeleteFile(PathForLogs & CurrentLogName) ' и только потом удалить ставший ненужным лог
End If
End Sub