トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

FB-sendmail

sendmail を外部から接続する場合には以下を追加

sendmail_enable="YES"
sendmail_submit_enable="YES"

FreeBSD で sendmail を ports でいれた場合に変更する。

#############################################
sendmail_enable="YES"
sendmail_procname="/usr/local/sbin/sendmail"
##############################################
/etc/make.conf:
SENDMAIL_CF_DIR=        /usr/local/share/sendmail/cf
MC ファイルについかする。
define(`confEBINDIR', `/usr/local/libexec')dnl
define(`UUCP_MAILER_PATH', `/usr/local/bin/uux')dnl

cf ファイルのチェック

送信チェック
% ./sendmail -C./test.cf -bt
 > 3,0 user@domain
ホスト名が正しく取得できていることの確認
% ./sendmail -bt -d0.4

https://www.jpcert.or.jp/ed/2001/ed010002.txt

コマンドでテスト
% sendmail -bv -C./test.cf testuser
testuser... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@testdomain
testuser@testdomain... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@your.domain.name
testuser@your.domain.name... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@test.domain.name
testuser@test.domain.name... deliverable: mailer relay, host mx1:mx2, user  testuser@test.domain.name
# sendmail -bt -C./test.cf
> /map generics root

http://www.wikihouse.com/1yen/index.php?UNIX%2FSendMail#content_1_3

mailertable を作った時には [ “Smart” relay host ]

解決策としては、service.switch というファイルを作成して名前解決に hosts を優先す  るということを明記すればOKでした。

ただ他の環境ではこんなことなかったのでこの sendmail のバージョン( sendmail-8.13.8-8.1.el5_7 )のバグじゃないのかな‥とも思いつつ。
1	# vim /etc/mail/service.switch
2	hosts   files
3	(間はスペースじゃなくてタブが必須)
4	 
5
# /etc/rc.d/init.d/sendmail restart

SPAM 単位時間あたりに接続するセッション数を管理

参考http://blog.so-net.ne.jp/oyazi/archive/20060726

http://www.rbbtoday.com/column/spamadmin/20050228/index.html

MC ファイルに追加
dnl ###########################################################################
dnl ## タイムアウト値
define(`confTO_COMMAND',`5m')dnl # コマンド入力の待ち時間を5分に設定
define(`confTO_DATABLOCK',`5m')dnl # 5分以上本文の受信が途切れた場合エラーにする
define(`confTO_IDENT',`0s')dnl # identは問い合わせない
define(`confTO_RESOLVER_RETRANS',`3s')dnl # 名前解決の待ち時間は3秒
define(`confTO_RESOLVER_RETRY',`2')dnl # 名前解決の再送は2回まで
dnl ## リソース関係
define(`confMAX_MESSAGE_SIZE',`1048576')dnl # メール本文は1Mバイトまでに制限
define(`confBAD_RCPT_THROTTLE',`10')dnl # 10回のUserUnknownまでは即座に応答
define(`confCONNECTION_RATE_THROTTLE',`30')dnl # 1秒間に最大30回までの接続を受け付ける
define(`confCONNECTION_RATE_WINDOW_SIZE',`1m')dnl # ratecontrolの単位時間は1分
FEATURE(`access_db')dnl # ratecontrol,conncontrolに必要
FEATURE(`delay_checks')dnl # ratecontrol,conncontrolの即時切断のために必要
FEATURE(`conncontrol', `nodelay', `terminate')dnl # 制限を超過した場合即時切断
FEATURE(`ratecontrol', `nodelay', `terminate')dnl # 制限を超過した場合即時切断
FEATURE(`nocanonify')dnl # ドメインパートの正規化を抑制
dnl #######################################################
/etc/mail/access
ClientRate:IP.ADD.RE.SS LIMIT
  IP.ADD.RE.SS は 192.168.2.88 等の IPADDRESS
  LIMIT は 接続数 : 0 の場合には制限なし
ClientConn:IP.ADD.RE.SS LIMIT
   IP.ADD.RE.SS は 192.168.2.88 等の IPADDRESS
   LIMIT は 接続数 : 0 の場合には制限なし

SPAM対策の実行時の内容

dnl  ######################################################################
dnl ##
dnl ## SPAM session 2007 / 09 / 13
dnl ##
dnl ## TIMEOUT
define(`confTO_COMMAND',`5m')                    dnl # WAIT TIME of  command.
define(`confTO_DATABLOCK',`5m')                  dnl # DATA session waite time.
define(`confTO_IDENT',`0s')                      dnl # nowatite ident.
define(`confTO_RESOLVER_RETRANS',`3s')           dnl # DNS wait.
define(`confTO_RESOLVER_RETRY',`2')              dnl # times of retiry dns.
dnl ## 
dnl ## define(`confMAX_MESSAGE_SIZE',`1048576')  dnl # DATA area size.
define(`confBAD_RCPT_THROTTLE',`10')             dnl # Number of UserUnknonw.
define(`confCONNECTION_RATE_THROTTLE',`30')      dnl # Number of session.
dnl ## define(`confCONNECTION_RATE_WINDOW_SIZE',`1m')   dnl # time window of ratecontrol
define(`confCONNECTION_RATE_WINDOW_SIZE',`1m')   dnl # time window of ratecontrol
dnl         ConnectionRateWindowSize
dnl ## FEATURE(`access_db')dnl # ratecontrol,conncontrol
FEATURE(`delay_checks')                          dnl # ratecontrol,conncontrol
FEATURE(`conncontrol', `nodelay', `terminate')   dnl # 
FEATURE(`ratecontrol', `nodelay', `terminate')   dnl # 
FEATURE(`nocanonify')                            dnl # 
dnl  ######################################################################
dnl # cat /etc/mail/access
dnl #
dnl ClientConn:127.0.0.1            0
dnl ClientConn:                     30
dnl #
dnl ClientRate:127.0.0.1            0
dnl ClientRate:                     60
dnl #

添付ファイル名が文字化けする

FreeBSD環境でsendmailをご使用の場合、デフォルトで添付ファイル名が257バイト以上は切り捨てる設定になっております。

それ以上の長いファイル名を使うと、不完全なファイル名になってしまい、受信したときに日本語ファイル等は文字化けが発生します。

sendmail.cfを下記のように編集する事により解消されます。

MaxMimeHeaderLength=256/128
   ↓
MaxMimeHeaderLength=2048/1024

$SENDMAIL -bt -C$CFFILE
コマンドでテスト
% sendmail -bv -C./test.cf testuser
testuser... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@testdomain
testuser@testdomain... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@your.domain.name
testuser@your.domain.name... deliverable: mailer local, user testuser
% sendmail -bv -C./test.cf testuser@test.domain.name
testuser@test.domain.name... deliverable: mailer relay, host mx1:mx2, user   testuser@test.domain.name

# sendmail -bt -C./test.cf
> /map generics root

SPF レコードの対応

sendmail で smf-spfを使ってSPF認証する

version

$ /usr/sbin/sendmail -d0.101