В этот ответ Я перечисляю три библиотеки Ruby, которые позволяют вам смотреть каталог на предмет изменений. Сценарий, использующий одну из этих библиотек и почтовую библиотеку (например, Pony ), будет довольно простым.
Используя мою библиотеку и Pony сценарий может быть таким простым:
require 'directorywatcher'
require 'pony'
# Only watch every two minutes
my_watcher = Dir::DirectoryWatcher.new( 'uploads', 120 )
my_watcher.on_add = Proc.new do |file_name,info|
Pony.mail(
via: :smtp,
via_options: { address: 'smtp.mydomain.com', domain:'mydomain.com' },
from: "Upload Notifier <noreply@mydomain.com>",
to: "admin@mydomain.com",
subject: "New File Uploaded!",
body: "A new file '#{file_name}' was just uploaded on #{info[:date]}"
)
end
my_watcher.start_watching.join # Join the thread