記事の最後へ▼ 
< 質 問 >
SMTP送信サイズ制限

XmailCfg 2.22a
Xmail 1.22
W2kServer
ActivePerl5.8.6

メール送信のサイズ制限を設定したのですが、送信時にサイズ制限がかかりませんでした。

server.tabに反映されてる設定内容は
"MaxMessageSize"    "10240"
"DefaultSmtpPerms"    "MRV"

で、ユーザー個別のuser.tabは
"MaxMessageSize"    ""
"SmtpPerms"    "MR"
に設定されています。

受信時のサイズ制限は正常に動作しているようです。
また、user.tabの"MaxMessageSize"にサイズを設定することで、ユーザー個別の
送信時制限は出来ました。

過去ログの検索でもXmail 1.8でserver.tabにMaxMessageSizeを設定しても
送信制限が出来ないようなことが見つかりましたが、Xmail 1.22でも変わらない
のでしょうか?

せち (07.15/06)


【 cop (07.17/06) 】

せちさん、

[ユーザの管理]-[メッセージサイズ制限] に何も指定しないと [XMail 環境設定]-[メッセージサイズ制限(MaxMessageSize)] が有効になると XMailCFG のヘルプに書いてあるのは、ヘルプのまちがいです。

しかし、今回はヘルプは修正せず、XMailCFG の動作を変更することにします(??)。

XMail は

(1) user.tab に MaxMessageSize 変数があると、その値にかかわらず server.tab のものを上書きする。
(2) MaxMessageSize 変数の値が存在しない場合、サイズ制限を行わない。

という動作をします。

一方、XMailCFG では [ユーザの管理]-[メッセージサイズ制限] に何も指定しない場合、user.tab に
"MaxMessageSize" ""
と書くので、この場合、サイズ制限なしになってしまうのは XMail から見れば正しい動作です。

user.tab に MaxMessageSize 変数を入れるのは、server.tab とは異なるサイズ制限を行いたい場合だけで、そうでないのなら、MaxMessageSize 変数は user.tab 内にあってはなりません。

---
ヘルプを修正するか XMailCFG の動作を変更するかということになりますが、後者を選ぶことにしました。[アカウント情報]-[メッセージサイズ制限] が空白の場合、サイズ制限は [XMail 環境設定] に従うことにします。つまり、この場合、user.tab には MaxMessageSize 変数を書かないということです。

分かりにくい説明になってしまったかもしれませんが、いずれにしても XMailCFG 側の不備です。次版で修正します。


【 せち (07.19/06) 】

詳細な説明有難うございます。

既存ユーザー設定の一括設定のため、以下のようなbatを実行してみました。
---------
@echo off
for /r x:\usr\xmail\MailRoot\domains %%I IN (user.tab) do call :usertab %%I
goto :END

:usertab
if EXIST %1 (
echo %1
copy %1 %1.bak
type %1.bak | findstr /V "MaxMessageSize" > %1
)
:END
---------
※MaxMessageSizeに値が設定されていても無条件で消してしまいます。
※スペースの入るパスは考慮していません。

user.tabからMaxMessageSizeの変数を消去することで送信制限が働くようになりました。

これとは別件で、ドメインの[アカウント情報]をMaxMessageSizeの値なしで更新すると
userdef.tabにMaxMessageSizeの変数が書かれてしまいます。
ユーザー作成時、ドメインのデフォルト設定を使った場合MaxMessageSizeが残ってしまう
ようです。


【 cop (07.19/06) 】

せちさん、

バッチファイルについてはどうもありがとうございます。
MaxMessageSize 変数が誤って入ったままのユーザがたくさんいるはずなので、さあ困ったと思っていたところでした。

[ドメインの管理] の方にも同様の問題があることは 2.22b 版のアップ後に気づきました。

次版で修正します。
今後ともよろしくお願いします。

記事の先頭へ▲ 
SUPER LABORATORY