星期一, 7月 09, 2012

Calibre小補強

是這樣的,我在公司的電腦安裝了Calibre,想利用send to kindle把電子書寄到指定的e-mail位址,這樣Kindle就會自動更新。但是公司的郵件伺服器不提供SMTP,而Calibre本身的郵件設定又只有跟SMTP相關的部份,因此只能作罷。
這幾天想了又想,本來已經放棄,想要開始hack Calibre源碼,自己作一個 plugin 來補強了。但是正好看到有Open With這個 plugin ,靈機一動,就想到有這個,不就可以自己寫一個 script 來搭配使用了嗎?於是就開始實驗。
  1. 先開始一個 sendmail.vbs 檔案,然後利用 WScript.Arguments 來取參數。這裡首先遇到的問題是 Calibre 直接呼叫 sendmail.vbs 時,會出現 Error 193 的錯誤。這是因為 python subprocess 模組(Calibre是用Python寫得)不認為 sendmail.vbs 可以被執行,所以要繞路一下,多寫一個 sendmail.cmd,裡面則是用 wscript sendmail.vbs 來呼叫,這樣就可以了。
  2. 取得的參數是帶有完整路徑的檔名,因為我不想郵件的主旨又臭又長,所以就用 Scripting.FileSystemObject 的 GetFileName ,這樣就可以只取得檔案名稱。
  3. 寄信,需要附件,我是參考這篇,利用 Outlook 來寄信。使用 Outlook 寄信會跳出一個安全警告,這個沒辦法避掉,要避掉就只能改用 CDO 或其他方式,暫時就這樣用吧。

沒有留言: