[轉錄] 好文章收錄 ---- E-Mail慘劇
[資訊人園地]
電 腦 小 故 事 ---- E - M A I L 慘 劇
by 夜鷺
11/08/94
別以為你能做得到的,就代表它不會出錯。
古早以前,其實也不算早,剛好是e-mail系統才問世的年代,有一個人叫Al的,
是個程式設計師,他發現e-mail系統不夠完美,使用者在發信之後不能確定信件
是否有順利到達收信者的信箱裡,發e-mail像石沈大海一樣的,沒消沒息。非要
等到有回函了,才知道某年某月的某一天發的某一封信對方有收到。假如那個人
剛好度假去了,很久的時間都沒有讀信,那得要等多久才知道信有沒有送到呢?
為了解決這個問題,Al寫了一個程式讓e-mail系統具有自動回信的功能。使系統
自動在收到e-mail的同時馬上發一封"已收到"的信給發信人。如果度假去了
還可以在信上附註
"Al 目前正在xxxx度假,預計x月x日回來
,所有信件將在屆時儘速回函"
很不錯吧!當時還有另外一位程式設計師,叫做Nell的,喜歡Al寫的這個自動
回信的功能。就copy了一份回去,將Al的名字改成Nell的名字,照樣在她出去度假
的時候讓e-mail系統做同樣回信的動作。
後來一直都沒什麼事發生,直到有一天‧‧‧
Al和Nell同時出去度假,Nell臨走前啟動了自動回信的功能後,鎖上辦公室
的門之後就出發了。同樣地,Al在臨走前也去啟動自動回信的功能,可是就
當他要鎖上門之前,他記起了有一件重要的事沒跟Nell說,於是他發了一封
e-mail給Nell,然後才離開。(你可以猜猜看會發生什麼事)
沒有多久,悲劇就發生了。據說整個電腦系統在次記憶體爆了之前就當掉了,
次記憶體中滿滿的都是e-mail,來自於AI的自動回信系統給Nell的自動回
信系統給AI的給Nell的‧‧‧‧信。
【後續】
即使發生過慘劇,一個這樣好的點子,在克服了bug之後,還是保留了下來。
在UNIX系統網路上,有一個vacation的指令,可以執行類似的工作。
然而,這個改良系統是怎樣來預防上述的慘劇呢?
基本上多了一個這樣的概念:對每一個來信的住址只自動回函一次。為了要達
到這個想法,必須有一個檔案記錄所有曾來信的住址。使系統在收到新信後,
可以先檢查這封信的住址是否曾經出現過。如果沒有,才自動回信,並且將這
個新住址記錄下來。相反的,如果有,表示發信人已經收過.vacation.msg的訊息,
則不需要再自動回信了。這樣的記錄檔案就是.vacation.pag檔。當然,為什麼
我們在啟動自動回信的功能前要先清除.vacation.pag的內容,相信就不難理解了。
--
┼──┼ ┼──┼
│ │ ╭───╮
│ │ ├───┤
├──┤ ╰─┬─╯ B85504047
╰──╯ ─┼─ 台大化工一A 江明洋
--
※ 發信站: 批踢踢實業坊(bbs.m8.ntu.edu.tw)
◆ From: 140.112.8.10