另外發現若是 OUTLOOK EXPRESS內的帳號有設定 “在伺服器上保留備份”的選項時,若更改Outlook express的收信MAIL SERVER IP時,會出現 lock 問題。
分析原因大概如下:
若設定“在伺服器上保留備份”時,兩台電腦設定同帳號狀態下,兩台電腦都可以收到完整的信,也就是說A電腦收到6/10~6/13日的信,B電腦在5日內收信(這裡設刪除5日後的信),也可以完整收到6/10~6/13日的信。但OUTLOOK EXPRESS是用什麼機制來判定這兩台有何不同? 這點還不清楚。
會發生卡住的原因,研判本來A電腦解析 mail server 為外部實體IP,收過信後,再重複收信可以看到SERVER上有多少信,但是收下來的信是0封,因剛剛已經收過信了,此時再連線 WEB VPN 後,mail server 變成解析為内部IP,照理說OUTLOOK EXPRESS剛已經收過信了,但此時再按收信,正常要能順利收信,且若無新信,也只會收0封信才對,但是此時若收信,會卡在準被收信狀態(顯示 SERVER上還有多少封信以及準備要收信),再看mail server log,會發現 pop3正常收信訊息應該會有兩行:
Jun 13 20:56:15 mail dovecot: pop3-login: Login: user=<mailbak>, method=PLAIN, rip=x.x.x.x, lip=x.x.x.x
Jun 13 20:56:15 mail dovecot: POP3(mailbak): Disconnected: Logged out top=0/0, retr=2/2421, del=2/2, size=2388
pop3連線後再來會開始紅色的收信部份,但是若是上面說的狀況下,只會出現黑色連線的訊息,並不會出現紅色收信的部份,與OUTLOOK EXPRESS卡住的情形吻合。
目前的解決方式:
一、拿掉 “在伺服器上保留備份” 的選項。
二、直接在 伺服器 選項給mail server的外部實體IP,不透過DNS解析,這樣就算連線 WEB VPN 後,收信還是會直接走外部IP,不更換收信的IP位置時,在 “在伺服器上保留備份” 的狀態下測試也是可以正常收發信,不會有卡住的情形。
==========================================================================
今天一早,台中分註點反應有兩台PC MAIL無法收,另一台NB收發信沒問題,試了一早上,發現連VPN收信會卡住,但是不使用VPN則可以正常收發信,這就不好搞了,到底是VPN與SERVER端連線有問題嗎?可是若有問題,那NB應該也要跟著有問題。試到下午想撞牆,後來發現……………….
當有兩台電腦同時用同帳號使用 OUTLOOK EXPRESS 收發信,尤其其中一台若是使用IMAP,另一台使用POP3,MAIL SERVER就會發生 /var/spool/mail/該帳號 LOCK住的情形,此時就無法收信,會卡在那邊收不下來。
[root@mail ~]# lsof | grep roger 秀出該帳號在系統中使用的狀況,這邊可以看到系統還是有卡住該使用者帳號的 POP3 IMAP等程序。
真正的解決辦法是叫使用者把OUTLOOK EXPRESS都關掉,等個5~10分鐘,系統會自動解除 lock ,確認帳號 lock 被解除,[root@mail ~]# lsof | grep roger 內沒有POP3與IMAP等程序,再請使用者開OUTLOOK EXPRESS使用看看,應該就可以正常收信了。
題外話:那卡住的時候,為何被卡住同帳號不使用VPN連線直接走外線就可以收信呢?我只想到這個合理的解釋,就是收信網段的問題,vpn收信是直接使用內部網段IP,所以內部網段造成的收信 lock 問題,與外部網段的程序是區隔開來的,當然還要試試看如果兩台PC同時用同帳號由外部網段直接收信看會不會LOCK才能確定,但是使用者已經快把我殺了,只好作罷,暫時先這樣結案…………不完美的結案。
=================================================================
mail server 用 fedora 9 postfix + dovecot + mailscanner 架設,最近常聽到有重複收信的問題,後來看LOG發現有一些時候會出現 unable to lock for exclusive access: Resource temporarily unavailable 這個訊息,導致這封信會重複寄送,直到信完成寄出系統才會Remove 這封信,也就是說如果有使用 aliases ,如果裡面有5個收信人,結果其中一位收信人收現了這種訊息一直無法寄到使用者信箱,那麼另外四個人會一直收到重複的信,直到這五個人全部都成功寄出為止,難怪一早來又看到有重複的信………
上網查了一下,應該就是下面這位大大所說的原因,先改看看再觀察囉。
參考文章:http://bojack.pixnet.net/blog/post/25926521
==================================================================
目前系統的環境是 Postfix + Dovecot
這是最近出現在 maillog 訊息
Mar 15 08:49:49 mail postfix/local[4491]: C7EFD2B7C9D: to=<xxx@xxx.edu.tw>, orig_to=<xxx2008>, relay=local, delay=21, delays=0.06/0/0/21, dsn=4.2.0, status=deferred (cannot update mailbox /var/mail/xxx for user maxling. unable to lock for exclusive access: Resource temporarily unavailable)
因為郵件系統內設定有許多 Aliases,當有人正在針對特定的 Aliases 寄送信件,且此群組內某一個人正好在使用 POP3 收信時,可能就會發生 Lock 的情況,導致系統會重新再寄信該封信件,變成同一封信會收到 2 次以上 ( 大容量信件更是可怕 )
目前查了相關資訊,建議是將 Postfix 和 Dovecot Lock 的機制都設定為一樣,還不確定是否可以解決,正在觀察是否會出現相同的情況
Postfix 目前的設定
mailbox_delivery_lock = flock, dotlock
Dovecot 目前的設定
mbox_read_locks = flock dotlock
mbox_write_locks = flock dotlock
參考的資料如下
酷學園 – postfix 產生cannot update mailbox 和 Resource temporarily unavailable
Mool – maillog 出現 Resource temporarily unavailable
近期留言