
| 1.列印傳真 |
開啟文件->列印->印表機(產生傳真格式文件)-
>自己的程式(傳送到傳真伺服器) |
| 2.直接啟動程式 |
選取傳真的文件(ps)->傳送到傳真伺服器 |
| telnet host 4559 user username pass password pasv telnet host 被動模式的port stot #回到先前的連線輸入 job default jnew jparm .......... jsubm jobid |
連線 使用者名稱 使用者密碼 進入被動模式 建立新的連線 儲存檔案(檔案必須是ps) 將資料寫入被動模式連線後關閉(檔案就傳送到伺服器) 新增工作(要記住jobid) 設定工作參數如要傳送的檔案所在,傳真號碼......等 交付傳真的工作 |
| DOCUMENT |
指定你要傳送的傳真檔案 |
| DIALSTRING |
就是傳真號碼 |
| LASTTIME |
最後傳送時間,指定系統這個傳真檔傳真後多久要刪除要刪除的時間 |
| from socket import * s1=socket(AF_INET,SOCK_STREAM) s1.connect(("localhost",4559)) s1_f=s1.makefile("rw") line=s1_f.readline() s1.send("User csc \n") line=s1_f.readline() |
#為什麼要如此作,如果沒有這麼作socket(AF_INET,SOCK_STREAM) 要改寫為socket.socket(socket.AF_INET,socket.SOCK_STREAM) 建立s1為socket的資料結構 建立連線 將socket回傳的資料以檔案方式來讀取 注意讀取是以s1_f.readline() 寫入是以s1.send("資料\n") 而寫入資料一定要換行才代表資料已經傳出去,否則讀取的資料無法得到回應 |
| ftp host 4559 username
passwordbin cd /tmp put 檔名 quote job default quote jnew quote jparm .......... quote jsubm jobid |
連線 使用者名稱 使用者密碼 要先確定你資料的格式如果是tif,pdf使用bin 否則使用ascii(ps,txt) 建立新的連線 儲存檔案(檔案必須是ps) 新增工作(要記住jobid) 設定工作參數如要傳送的檔案所在,傳真號碼......等 |
| ftp host 4559 username
passworddir recvq lcd c:\windows\temp bin get 檔名 |
連線 使用者名稱 使用者密碼 |

connect(host[,
port]):連線主機
在
每取得一行時callback
函式會被呼叫.內定值是會顯示在sys.stdout."STOR filename".blocksize是
在2.1版被新增,其內定值是8192.
>>>import ftplib傳送檔案
>>>ftp=ftplib.FTP()
>>>ftp.connect(host="192.168.0.50",port=4559)
'220 www.ocean-pioneer.com server (HylaFAX (tm) Version 4.1.5) ready.'
>>> ftp.login(user="csc")
'230 User csc logged in.'
>>> ftp.cwd('recvq')
'250 CWD command successful.'
>>> ftp.dir()
-rw-rw- 1 14 886223512188 Tue06AM fax05248.tif
-rw-rw- 2 14 886 2 23579359 Tue07AM fax05249.tif
-rw-rw- 1 14 Tue08AM fax05250.tif
-rw-rw- 886 2 23579359 Tue08AM fax05251.tif
-rw-rw- 1 14 886 2 23579359 Tue09AM fax05253.tif
>>>ftp.retrbinary('retr fax05250.tif',open('c:\\temp\\test.ps','wb').write)
'226 Transfer complete.'
>>>
>>>import ftplib
>>>ftp=ftplib.FTP()
>>>ftp.connect(host="192.168.0.50",port=4559)
'220 www.ocean-pioneer.com server (HylaFAX (tm) Version 4.1.5) ready.'
>>>ftp.login(user="csc")
'230 User csc logged in.'
>>>ftp.cwd('tmp')
'250 CWD command successful.'
>>>ftp.storlines('stor b.ps',open("c:\\test.ps"))
'226 Transfer complete.'
>>>
| connect |
220 www.ocean-pioneer.com
server (HylaFAX (tm) Version 4.1.5) ready.' |
| login |
230 User csc logged in. |
| cwd |
250 CWD command successful. |
| dir |
有內容則顯示,沒有則空白 |
| sendcmd('job default') |
200 Current job: (default). |
| sendcmd('jnew') |
200 New job created: jobid:
3222 groupid: 3222. 必須在根目錄下才可以下 |
| sendcmd('jparm ...') |
dialstring ->213 lasttime ->213 document ->200 notifyaddr ->213 |
| sendcmd('jsubm jobid') |
200 |
| sendcmd('jkill jobid') |
200 Job 208 deleted ;
current job: (default). |
| sendcmd('filefmt') |
|
| sendcmd('jobfmt') |
|
| retrbinary() |
226 Transfer complete. |
| storlines() |
226 Transfer complete. |
根據上述的分析,我自己寫了一個類別:faxlib| API |
說明 |
| connect(host,port,user,passwd) |
登入,成功傳回1,回應字串(伺服器的狀態),失敗-1,回應字串(伺 服器的狀態) |
| login() |
登出,成功傳回1,失敗-1 |
| quit() |
登出,成功傳回1,失敗-1 |
| get_jobid() |
經由jnew回傳狀態,取得工作ID |
| put_file(target_file,source_file,mode) |
上傳檔案,模式分a/b(文字/二位元) |
| get_file(target_file,source_file)) |
下載檔案 |
| send_fax(dialstring,document,notifyaddr,jobfmt) |
傳送傳真(電話號碼,client上欲傳送的檔案,e-mail通知,
查詢的工作模式) |
| query_recvq() |
查詢recvq目錄中的傳真檔,傳回檔案物件 回傳兩個變數,1-狀態,2-檔案物件/錯誤訊息 |
| query_sendq() |
查詢sendq目錄中的傳真檔,傳回檔案物件 同上 |
| query_doneq() |
查詢doneq目錄中的傳真檔,傳回檔案物件 同上 |
| get_recv(filename) |
下傳recvq中的傳真檔案(*.tif) 回傳兩個變數,1-狀態,2-儲存的檔案/錯誤訊息 |
| abort_fax(jobid) |
取消傳真(只有待傳的才可以) |
| query_recvq_list() |
查詢recvq目錄中的傳真檔,傳回檔案的list,為了取得檔名容易 |
| 文字檔 |
對使用者來講設定會比較方便 |
| 登錄檔 |
不知有何優點,一般軟體所在為
HKEY_LOCAL_MACHINE.Software.下寫入你程式的名稱, 其中的鍵值可以自定(數字,文字) |