在Xlight FTP服務器中設置電子郵件通知
Xlight FTP服務器中, 系統管理員可以設置電子郵件通知, 這樣當某些事件如, "文件上傳" 或 "硬盤空間不足" 發生時, 他可以收到電子郵件通知.
在這個教學裏, 我們將教你如何設置電子郵件通知. 註意: 只有專業版本的Xlight FTP服務器有這個功能, 用戶在30-天試用期也可以試用這個功能.
1. 你必須到虛擬服務器的設置裏,啟用電子郵件通知功能, 如下圖所示.
2. 然後你需要設置 SMTP 服務器用於發送通知的電子郵件. 我們這裏用Gmail為例. 因為Gmail的SMTP服務器需要TLS 加密連接, 你需要選擇選項"使用SSL/TLS連接"並使用端口465. 對於大部分公司內部的郵件服務器,標準的SMTP端口25總是被支持,SSL/TLS的端口465不一定被支持。 所以對公司內部的郵件服務器來說,SSL/TLS連接不是必須的,甚至不能使用。
3. 你必須選擇電子郵件通知配置文件. 這個文件用來配置那些事件能夠觸發FTP服務器發送電子郵件通知. 電子郵件通知配置文件是文本文件, 它存放關於你能夠接受電子郵件通知的事件. 你可以用記事本編輯這個文件.
4. 你還需要設置SMTP用戶認證以及默認的電子郵件設置. 設置SMTP用戶認證, 你需要在郵件服務器有一個有效的賬戶, 如下圖所示.
Xlight FTP服務器的郵件通知支持7個事件. 下面的表格是支持事件的列表.
電子郵件通知支持的事件
事件名字 | 事件描述 |
---|---|
OnFileUpload | 事件在用戶上傳文件後被觸發. |
OnFileDownload | 事件在用戶下載文件後被觸發. |
OnFileDelete | 事件在用戶刪除文件後被觸發. |
OnDiskSpaceLow | 事件在硬盤空間不足時被觸發. |
OnLogin | 事件在用戶成功登錄後被觸發. |
OnLogout | 事件在用戶登出後被觸發. |
OnWanIPChange | 事件在服務器啟動後,廣域網IP發生改變時被觸發. |
如果你想要接受到電子郵件通知, 你需要將事件類型放在電子郵件通知配置文件中. 你可以使用參數進一步限制電子郵件通知被發送的條件. 下圖是一個電子郵件通知配置文件的例子,其中包含了5個事件.
在虛擬服務器當一個用戶上傳,下載,刪除一個文件或硬盤空間被定期檢查後,這些動作都會導致FTP服務器檢查,預先加載到內存裡的郵件通知配置文件. 服務器使用當前的動作對照並檢查在電子郵件通知配置文件中的每一行事件和條件. 如果其中一行能夠通過這個檢查, 一封電子郵件將被發出. 當找到匹配的一行以後, Xlight FTP服務器將不會繼續檢查下面的行. 配置文件中行的順序會影響電子郵件通知. 你最好將比較特別的條件放在靠近上面的行,比較同樣的條件放在靠近下面的行.
配置文件中的每一行是從左到右檢查. 在上面的圖裡, OnFileUpload是第一行裡的事件. 參數 $file 設置文件的類型. $file 有兩個值 *.exe 和 *.bat. 當用戶上傳文件的後綴是 *.exe 或 *.bat, 它將既滿足 OnFileUpload事件和文件類型的條件. 用戶的上傳行為然後檢查參數$dir. $dir參數限制了上傳目錄是虛擬路徑 /public 或是它的子目錄.
如果上面所有的條件都滿足, 一封電子郵件將被發出通知一個文件後綴是*.exe 或 *.bat 被上傳到虛擬路徑 /public 或是它的子目錄中.
第一行中的 $email_file 參數不是條件. 它用來指定一個文件,這個文件用於定制電子郵件的內容. 如果你不使用 $email_file 參數, Xlight FTP服務器會生成默認的電子郵件內容. 在 $email_file 指定的文件中, 你可以為將要受到郵件的人使用其他 TO, CC 和 BCC 地址. 這將替代電子郵件設置裡默認的TO地址.
郵件通知配置文件事例.
例子 1. 當硬盤C的剩餘空間少於100 MB, 或硬盤D的剩餘空間少於200 MB時發送電子郵件通知.
OnDiskSpaceLow $disk_space=C(100),D(200)
Example 2. 當被上傳的文件大小超過2000 MB時發送電子郵件通知.
OnFileUpload $file_size>2000
Example 3. 當用戶名是test的用戶上傳後綴是 gif, jpg, 或 png的文件後電子郵件通知.
OnFileUpload $file=*.gif,*.jpg,*.png; $user=test
Example 4. 當用戶上傳文件名包含被禁止關鍵字如sex, porn的文件後發送電子郵件通知.
OnFileUpload $file=*sex*,*porn*;
Example 5. 當用戶登出時,發送電子郵件通知的條件時他至少需要上傳一個文件.
OnLogout $up_files>0;
Example 6. 當用戶"tester"登錄時發送電子郵件通知.
OnLogin $user=tester;
Example 7. 除了匿名用戶"anonymous"之外,其他用戶登錄時會發送電子郵件通知.
OnLogin $user=×; $exclude_user=anonymous;
下面是郵件通知配置文件支持的參數.
郵件通知配置文件支持的參數
參數名 | 允許多值 | UNIX shell 類型的通配符 | 值描述 |
---|---|---|---|
$file | 是 | 是 | 文件名. |
$dir | 是 | 是 | 事件發生的目錄. 目錄可以是FTP虛擬目錄的形式如"/public"或DOS目錄的形式如"C:\test". 使用通配符來包含子目錄. 例如, 包含"C:\test"的子目錄, 你可以寫成"C:\test\*". |
$user | 是 | 是 | 用戶名. |
$group | 是 | 是 | 用戶組名. |
$exclude_file | 是 | 是 | 不觸發事件的文件名. |
$exclude_dir | 是 | 是 | 不觸發事件的目錄名. |
$exclude_user | 是 | 是 | 不觸發事件的用戶名. |
$exclude_group | 是 | 是 | 不觸發事件的組名. |
$file_size | 否 | 否 | 以MB計算最少的文件大小. 例如如果你希望OnFileUpload事件在上傳文件大小超過1000M時被觸發, 你可以寫成$file_size>1000. 這個參數不支持多值. |
$down_files | No | No | 用戶已下載的文件數目. 例如,如果你想在用戶登出時,當他下載超過10個文件觸發OnLogout事件,你可以寫成$down_files>=10. 這個參數不支持多值. |
$up_files | No | No | 用戶已下載的文件數目. 例如,如果你想在用戶登出時,當他上傳超過1個文件觸發OnLogout事件,你可以寫成$up_files>=1. 這個參數不支持多值. |
$disk_space | 是 | 否 | 觸發硬盤空間不足警告的條件. 它以硬盤盤符開始,括號內包含以MB計算的最低剩餘磁盤空間. 例如, 當你想在硬盤E的空間低於500MB時接收到郵件通知,你可以寫成E(500). 當設置這個參數後, Xlight FTP服務器將會每隔30分鐘檢查設置的磁盤的剩余空間. 因此如果你當前的剩余磁盤空間在設置的門限之上, 但不明原因你收到了磁盤空間低的警告郵件. 請檢查你是否運行計劃任務(例如備份), 並導致臨時降低剩余磁盤空間低於設置的門限. |
$email_file | 否 | 否 | 這個文件用來定制當事件被觸發時的電子郵件內容. 你可以放很多TO, CC 和 BCC 地址在這個文件內. 它們將替代電子郵件設置裡默認的TO地址. 這個文件內TO, CC 和 BCC的地址數目沒有限制. 但是你使用的SMTP服務器可能有這方面限制. 另外電子郵件內容的文件大小被限制為16K. 另外一個有用的技巧是這個文件只是在發送郵件之前被Xlight FTP服務器讀取. 如果你動態生成郵件內容,這個特性會很有用. 例如,如果你有一個晚上運行的代碼編譯工作,這個編譯會生成日誌. 當編譯完成後,在上傳日誌文件到FTP服務器之前, 你可以用腳本寫入一個電子郵件文件,包括編譯的結果, 郵件接受者的地址. 在上傳編譯日誌之前上傳這個文件到FTP服務器. 這樣人們在早晨就會接受到電子郵件,通知他們晚上編譯的結果,以及日誌的位置. |
某些參數允許多個值. 多個值之間用逗號","分割. 對於有多個值的參數,值之間的關係是或者. 例如$user = a*, c* 的意思是用戶的登錄名以字符a 或者 b 開始. 如果一行包含多個參數,所有條件必須滿足才能觸發事件. 對於這行裡沒有出現的參數,它們的條件自動滿足.
$email_file參數裏設置的電子郵件文件的內容
下圖是$email_file指定的一個電子郵件文件的內容示例. 以字符%開始的字符串是變量, 它們將在電子郵件發送前被替換為實際的內容.
注意: 在電子郵件頭內不能有任何空行. 電子郵件頭和郵件內容之間只用一個空行分開. 在電子郵件內容中, 允許空行數沒有限制,如下圖所示.
下面是電子郵件文件支持的變量. 請注意區別: 電子郵件文件的變量以字符%開始, 但是郵件通知配置文件的參數以字符$開始.
電子郵件文件支持的變量
變量名 | 值描述 |
---|---|
%filename | 將被替換為被上傳,下載或刪除的文件名. |
%down_filelist | 最後100個被下載的文件列表. 文件名之間用逗號隔開. |
%up_filelist | 最後100個被上傳的文件列表. 文件名之間用逗號隔開. |
%file_size | 將被替換為被上傳,下載或刪除的文件大小(比特). |
%file_size_mb | 將被替換為被上傳,下載或刪除的文件大小(MB). |
%downfiles | 將被替換為被用戶已下載的文件數目. |
%upfiles | 將被替換為被用戶已上傳的文件數目. |
%totaldown | 將被替換為被用戶已下載流量. |
%totalup | 將被替換為被用戶已上傳流量. |
%username | 將被替換為上傳,下載或刪除文件的用戶名. |
%password | 將被替換為上傳,下載或刪除文件的用戶的密碼. |
%groupname | 將被替換為上傳,下載或刪除文件的用戶組名. |
%virtual_path | 將被替換為文件被上傳,下載或刪除所在位置的虛擬路徑. |
%real_path | 將被替換為文件被上傳,下載或刪除所在位置的DOS路徑. |
%client_ip | 將被替換為上傳,下載或刪除文件的用戶IP地址. |
%server_ip | 將被替換為上傳,下載或刪除文件的虛擬服務器的IP地址. |
%server_port | 將被替換為上傳,下載或刪除文件的虛擬服務器的端口地址. |
%weekday | 將被替換為當前星期. |
%date | 將被替換為當前日期. |
%time | 將被替換為當前時間. |
%rfc822_date | 將被替換為RFC 822日期的格式. 它用來支持電子郵件的DATE郵件頭. |
%diskfree<> | 將被替換為剩餘磁盤空間. 例如, %diskfree<C> 將顯示 C:\ 盤剩餘磁盤空間. 它只在OnDiskSpaceLow事件觸發時工作. |
%wan_ip | 將被替換為廣域網IP地址. 這個變量必須和OnWanIPChange事件一起使用. |