星期六, 9月 03, 2005

用Perl 備份圖檔到 Gmail

在我的電腦存了一堆有的沒的圖片,這些圖片放著只是佔去硬碟空間,要砍又砍不下去。Gmail 提供了2GB以上的空間,對於放置這些根本不會去看的圖實在是太好用了。

為什麼要放Gmail?就如同上述的空間大,除此之外Gmail 可以把同一主題摺疊起來、有預覽圖可看、可以一次瀏覽所有附件、可以一次下載所有附件(ZIP 壓縮檔下載)。太棒了!!

以我的圖片分類是以子目錄來分,同一主題放在同一個子目錄內,子目錄內的圖片數量和大小不一。Gmail 單封上限是10MB,同樣主題的信件可以摺疊起來,只要善用Gmail 的摺疊功能就可以把同主題的所有圖片收藏在一起。


接下來是 Perl 的部份
我安裝了 Package Mail:SenderMail:Sender 有什麼好處,可以一次夾很多檔。方便!

我是在 Windows 的環境下執行 Perl

最快最簡單的方法,對我來說是最好的方法。
@dirlist = `dir /b /ad`; 把子目錄列出來。
接著計算檔案大小 $filesize = -s "jpg/$etc/$filename";
因為Gmail 有10MB 的單封mail上限,為了安全起見我限制在6Mb
if ($totalsize > '6000000') { &sender; }

最後把信寄出去
sub sender {
$sender = new Mail::Sender {smtp => 'your.smtp', from => 'yourname@gmail.com'}; $sender->MailFile({to => 'yourname@gmail.com', subject => "$etc", msg => "$etc", encoding => 'base64', file => "$sendfile"});}

夠簡單吧!!
詳細的 Code 就不公開了,相信您一定可以寫比我更棒更好的 Code。