The e-mail notification system

To be able to send e-mails from FileRun, you need to either have PHP configured with “sendmail” or have FileRun configured with an SMTP server. Do note that most SMTP servers require authentication, and to prevent spam and other attacks, some don't even allow you to send e-mails from other addresses than the one configured for authentication. So don't be surprised if you are trying to send a file from a particular e-mail address and the recipient sees the message as coming from the address you used for the SMTP authentication.

FileRun tries to detect your SMTP server configuration and in some cases will use STARTTLS even if you don't want to. If that is the case, the solution is to open the file customizables/config.php (create the file if it doesn't exist) in a text editor and edit it too look like this:

<?php $config['system']['email']['smtp_options'] = ['SMTPAutoTLS' => false, 'ssl' => ['verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => true]];

Introduction

There are three ways you can configure FileRun to send e-mail notifications:

(1) Admin users can enable or disable the “Notifications” checkbox for the users, when they create or edit their accounts. In this case the users will receive e-mail notification messages when files are upload or downloaded from their folders or when comments are attached to their files, or when other users share folders with them. The users also have control over this option and they can enable/disable from their “Account settings” panel. One requirement from e-mail notifications to be sent on other users action is the permission to “see and exchange files with”. This is set from the control panel, under the “Permissions” tab, when editing a user account. If user A isn't aware of the existence of user B, user A will not be notified if user B makes changes inside user A's folders.

(2) Admin users can also use the “Control Panel » Notifications” section for setting up rules for notifications. Here you manually select which user-performed actions should send e-mail notifications. Using this option you can configure e-mail notifications to be sent to different e-mail addresses than the ones set for the user accounts.

(3) With the Enterprise FileRun version, users can choose to be notified when certain actions are being performed in a particular folder, by right-clicking the folder and selecting the “Notifications” option. The users can choose to be notified only about “write” actions or “read” actions. This option allows the users to receive notifications about “write” actions performed in folders that do not belong to them, but have been shared by other users, so the users can get notified when new files are available in these folders.

By default the e-mail notifications messages are sent from the e-mail address “some@email-address.com”. We recommend you to change that (from “Control Panel » System configuration » E-mail settings”) as many e-mail servers do not process messages that come from addresses that use a different domain name then the one used to host the FileRun installation. In most cases this e-mail address needs to be associated with a valid e-mail account.

Customizing the notification messages

There are more than 70 actions that FileRun can monitor in order to send e-mail notifications. Each action can have its own e-mail body template. For each action there is a corresponding template file, located inside the folder “customizables/emails/“. For the actions that do not have a template file, the template “customizables/emails/generic.tpl.txt” will be automatically used.

The following information which applies to all outgoing notifications can be customized from the control panel, under “System configuration”, “E-mail”, “Settings”:

  • From e-mail address
  • An optional BCC (Blind carbon copy) e-mail address
  • E-mail subject
  • Body content

E-mail template file format

<Action>
 [...]
 User "{$info.userInfo.name}" has performed the following action: "{$info.details.action}
 [...]
</Action>

The XML tags (<Action>, <From>, <Subject>, etc…) should not be altered or removed from the template files.

The body of the notifications contains Smarty syntax that allows you to use variables and perform various logical operations. For more details on using Smarty, please check this page: http://www.smarty.net/docs/en/smarty.for.designers.tpl

The following Smarty variables are available for use inside the templates:

{$info.userInfo.username} User’s login name.
{$info.userInfo.name} User’s name.
{$info.userInfo.company} Company name
{$info.userInfo.website} User’s website address.
{$info.userInfo.description} User’s admin note.
{$info.config.url.root} The URL of the FileRun installation.
{$info.settings} Array containing FileRun's current settings.
{$info.details} Array containing details related to the performed action. The structure varies according to each specific action.

Adding an email notification template

Each action has a unique keyname. Here are two examples:

  • “upload” for “When a file gets uploaded.”
  • “download” for “When a file gets downloaded”).

(You can check the following table for a full list of keynames.)

To add a custom template for a certain action, a text file named ”keyname.tpl.txt“ should be created in the e-mail notifications templates folder (as pointed above).

Actions keynames

Used often
upload File uploaded
receive_upload File received (via upload)
receive_copy File received (via copy)
receive_move File received (via move)
download File downloaded
provide_download File downloaded by other user
weblink_access WebLink folder access
weblink_download WebLink download
weblink_upload File received (via WebLink)
shared_folder_available New shared folder available
comment_added File comment added
comment_received Comment received on a file from other user
metadata_changed Metadata information changed for a file
login Login
folder_shared Folder shared
weblink_create WebLink created
file_encrypted File encrypted
file_decrypted File decrypted
Rarely used
weblink_update WebLink modified
weblink_remove WebLink removed
logoutLogout
login_failed Login failed
login_failed_account_deactivated Account deactivated
password_changed Password changed
user_manually_activated Account activated by admin user
user_manually_deactivated Account deactivated by admin user
comment_removed File comment removed
folder_unshared Folder unshared
Successful file actions
file_moved File moved
file_copied File copied
file_deleted File deleted
deleted_file_restored Restored deleted file
trash_delete_file File permanently deleted
file_renamed File renamed
zip_files Files zipped
files_send_by_email Files sent by email
file_locked File locked
file_unlocked File unlocked
version_restored File version restored
version_deleted File version deleted
Successful folder actions
new_folder New folder created
folder_moved Folder moved
folder_deleted Folder deleted
deleted_folder_restored Restored deleted folder
trash_delete_folder Folder permanently deleted
folder_renamed Folder renamed
folder_copied Folder copied
zip_folder Folder zipped
Failed file actions
upload_failed Upload failed
file_copy_failed Failed to copy file
file_deletion_failed Failed to delete file
file_move_failed Failed to move file
failed_file_rename Failed to rename file
zip_files_failed Failed to zip files
files_send_by_email_failed Failed to send files by email
file_lock_failed Failed to lock file
file_unlock_failed Failed to unlock file
failed_to_add_comment Failed to add comment to file
failed_to_remove_comment Failed to remove comment from file
version_restoration_failed Failed to restore file version
version_deletion_failed Failed to delete file version
Failed folder actions
new_folder_failed Failed to create new folder
failed_folder_rename Failed to rename folder
folder_copy_failed Failed to copy folder
folder_deletion_failed Failed to delete folder
folder_move_failed Failed to move folder
zip_folder_failed Failed to zip folder
Misc
new_user_registration New user registration
password_changed Password changed
password_recovery Password recovery
Administrative
user_added User added
user_edited User edited
user_deleted User deleted
role_added Role added
role_edited Role edited
role_deleted Role deleted
space_quota_warning Space quota usage warning

You can configure FileRun to send all the notifications for a certain time period in a single e-mail message. This helps preventing FileRun from sending hundreds of e-mail messages at a time, when users are uploading many files in a short time span.

To enable this you need to uncheck the option ”Instant email notifications“ available in “Control Panel” » “System configuration” » “E-mail settings”. The notifications will no longer be sent instantly, but queued until you run the script “cron/email_notifications.php” from the command line. On most Linux servers the command looks like this:

php cron/email_notifications.php your-domain.com

In some cases, where you have a custom “php.ini” PHP configuration file for the FileRun installation folder you might need to specify the path to it, so that the command is executed with the same configuration and not the default one (which usually doesn't load needed extensions, such as ionCube):

php -c php.ini cron/email_notifications.php your-domain.com

Using a Cron job on Linux servers or a scheduled task on Windows, you can choose the time interval the e-mail notifications are getting sent.

You can read more about cron here: http://en.wikipedia.org/wiki/Cron For examples, see this page: http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

If you are using a web hosting service, you most probably have a control panel tool for setting up scheduled tasks, so we recommend you to ask your server administrator or hosting service tech support how do you go about setting this up.