作者 主題: 請問關於 mail 附件檔  (閱讀 1661 次)

0 會員 與 1 訪客 正在閱讀本文。

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
請問關於 mail 附件檔
« 於: 2013-05-06 11:06 »
小弟想測試 mail 附件大檔
請問各位 mail 最大檔案寄過多大的 ?

小弟以 client - sendmail , server - postfix 試驗
最大只到 1 G (有人提想看附件 8 G 經過某些設備的現象)

一直調整 postfix 中
mailbox_size_limit , message_size_limit , queue_minfree
三個值

後來看到 http://forums.gentoo.org/viewtopic-p-5285305.html?sid=7b46c92192a68bff24de374326198fce
於是手動 telnet 測試


看來 1410065407 是極限
但這個值真不能改嗎 ?
還是協定上已經定義了此數值大小 ? (若是 .. 這數字怎跟 2 的次方差這麼多)

代碼: [選擇]
[root@testcli work]# telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to 1.1.1.1.
Escape character is '^]'.
220 testsev.test ESMTP Postfix
helo cc
250 testsev.test
MAIL FROM:<aa@a.b.c> SIZE=1410065407
250 2.1.0 Ok
^]
telnet> q
Connection closed.
[root@testcli work]# telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to 1.1.1.1.
Escape character is '^]'.
220 testsev.test ESMTP Postfix
helo x
250 testsev.test
MAIL FROM:<aa@a.b.c> SIZE=1410065408
552 5.3.4 Message size exceeds fixed limit
^]
telnet> q
Connection closed.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5401
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請問關於 mail 附件檔
« 回覆 #1 於: 2013-05-06 12:18 »
要看你怎麼設定的.
我把 queue_minfree 不設定 (沒限制), message_size_limit 最多可以設到 2147483647, 這與你的數字不太一樣.
代碼: [選擇]
mail from:<a@a.com> SIZE=2147483647
250 2.1.0 Ok

不過, 實務上, 除非你的 email 只是內部用, 否則設那麼大會有問題, 因為..... 外頭的 smtpd 通常都不會收那麼大的信.

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: 請問關於 mail 附件檔
« 回覆 #2 於: 2013-05-06 16:03 »
感謝 twu2 大大回覆

message_size_limit = 2147483647
果然 telnet 就能到這個極限數字


不過超過 1 G 多的附件就會卡在 server 端 /var/spool/postfix/active 下
而這時若將 message_size_limit 漸漸縮小 , 有機會能送到 mailbox
(有點感覺像是多個參數已經在極限值 , 必須互相搭配而去湊出最大附件值 ... 也可能是開始產生幻覺了)

至於正確的數字還得再 try ... 也不知跟 lab 的機器 , 網路等環境是否有關 ( ... 或是該想理由說服)

但至少知道不可能大於 2147483647 了



ps:
整個動作流程如下 :
原始檔案用 mutt 寄 -> (A)/tmp/mutt_mail格式暫存 -> (B)/var/spool/clientmqueue[A刪除] -> (C)/var/spool/mqueue[B刪除]
-> {client_sendmail} -> net -> {server_postfix} ->
(D)/var/spool/postfix/incoming[C刪除] -> (E)/var/spool/postfix/active[D刪除] -> (F)/var/mail/[E刪除]

每個步驟檔案都會變大一點 , 但沒有規律 (理論值是最後可大到 1.3 倍 , conf 中建議 1.5 倍)
到了 C 步驟若大於 message_size_limit , postfix 就拒絕了

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5401
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請問關於 mail 附件檔
« 回覆 #3 於: 2013-05-06 16:37 »
自己看 source code 比較快吧.
那個變數是用 int 存, 理論上在 x64 上不應該有 2G 的限制, 實際上超過並不是同一個錯誤, 而是系統資源不足之類的錯誤.
附件通常是用 base64 編碼,  大小會多 1/3 才是實際的信件大小.