	ط

------------------------------------------------------------
1	

2	
2.1	ץ(e.g. sendmail)Ȥ̿ΥĤ
2.2	ɥᥤ򥽡ȤƤ
2.3	$OUTGOING_ADDRESS: perl ¸֤û 
2.4	PIPELININGȤʤ
2.5	ʣΥޥ sendmail Ȥäƥѥ
2.6	VERPs
2.7	MAIL FROM: ꤷ

3	Internal
3.1	SMTP饤֥ˤĤ
3.2	ͽSMTP
3.3	SMTP  MAIL FROM:  $MAINTAINER ʳˤ
3.4	ƱmxˤĤ
3.5	MCI Cache
3.6	ΨˤĤƤιͻ
3.7	ץΧ®ʳȤ

4	졼ФȤ
4.1	activesեˤ졼
4.2	ƤΥ᡼졼Фꤲ
4.3	activesեˤ졼 (sendmail 5.x)
4.4	CF (by motonori@wide.ad.jp) ˤ relay ե

5	IPv6
5.1	4.0-current (2001/05/11 ʹ)
5.2	ɬפʥ⥸塼
5.3	IPv6 ̵ˤ

6	Q&A
6.1	root ¤ʤ MTA 򴹤ϡ
6.2	smtpfeed ľܸƤ٤ޤ󤫡
6.3	MTA ߤ
6.4	ԥꥹȤʬ䤹
------------------------------------------------------------


1	

ե륿󥰤ˤĤƤ => 

졼ˤĤ => 4

ΥɥȤˤޤĤ뤽¾ˤĤƽҤ٤ޤ

2	

2.1	ץ(e.g. sendmail)Ȥ̿ΥĤ

ȤΤǥեȤǤ

sendmailȤΤȤεϿ(äȤǶΤΤ)ǥХåǤ
(ǥХåȤää)ɬפʤʤ

	$NOT_TRACE_SMTP = 1; 

 config.ph ˤƤȤʤʤޤ

2.2	ɥᥤ򥽡ȤƤ

bulkmailer Ѥ˥ɥᥤ򥽡ȤƤץͤùࡣ
Ǥ⸽ǤϤۤȤɰ̣ʤ

	$SMTP_SORT_DOMAIN

ꤹȥȤԤʤ

2.3	$OUTGOING_ADDRESS: perl ¸֤û 

ϼCPUΥޥϼʥꤷʤ(4868M,16Mߤʡ)ˤϡ
fmlľMTASMTP֤ˤ perl ¸֤û
ȤפޤΤεǽ󶡤ޤ
$USE_OUTGOING_ADDRESS  non zero λ˼Τ褦ưޤ

ޤ $OUTGOING_ADDRESS :include:ñMLǤ㤨
/etc/aliases

	list-going: :include:/some/where/list

Τ褦ˤޤ/some/where/list  actives ʤɤ줿̤ͣ
ꥹȤǤMTAϤlistοͤߤޤ

   if ($USE_OUTGOING_ADDRESS) {
	1. fml ϰĤΥɥ쥹 $OUTGOING_ADDRESS 꽪λ
	   perl Ϥλǽλޤ
	2. MTAҤ :include: ꥹȤŸΥС
   }

XXX: minmin ͤˤä()

[μ]

0.	elena MLˤȤޤ

1.	include θܤ(include-outgoing)

   % cd /var/spool/ml/elena
   % make outgoing 

include-outgoing ȤܤΥե뤬ޤ 

2.	/etc/aliases ˽񤤤 newaliases

   elena-outgoing: :include:/var/spool/ml/elena/include-outgoing

3. 	makefml config Ǥεǽͭˤ롣

	-> OPTIONS -> SMTP -> USE_OUTGOING_ADDREESS -> "y"

$USE_OUTGOING_ADDDRESS 1ˤޤ

2.4	PIPELININGȤʤ

	$NOT_USE_ESMTP_PIPELINING = 1;

PIPELINE ǽʾǤȤʤ

2.5	ʣΥޥ sendmail Ȥäƥѥ

ʣ(sendmailäƤ)ޥ(Υޤ)

	$MCI_SMTP_HOSTS = N;

ǻꤵ줿Υޥ @HOSTS ǻꤹ

   @HOSTS = (machine-1.domain, machine-2.domain, machine-3.domain, ...);

$HOST  @HOSTS Ϳ N Υޥ sendmail ѥ˻Ȥ
(Ǥθ³)N®롣
 $HOST ȤƤޤΤϡȤ @HOSTS ϥä
 Ǥ(Ū)

⤷ꤷп N Ĥ­ʤϡ$HOST ٤Ȥ
N int Ʊ̤ netmask Ǥޤ()Ǥ⡢
¾ΥɥᥤǤȤ뤫顢int ޤǤ()
Ȥ actives κǸοͤϤ줷

2.6	VERPs

See errormails 2.10. 

2.7	MAIL FROM: ꤷ

MAIL FROM:<ɥ쥹> Υɥ쥹ʬϡ̾$MAINAINER Ǥ 
SPAM кΤ $MAINAINER ˤĤäƤɥᥤ̾Ǥ ISP Υ᡼륵
Ф˵ݤ礬ޤ

ä $SMTP_SENDER  MAIL FROM: ͤѹ뤳Ȥ
ޤ

:
/var/spool/ml/etc/fml/site_force.ph ꡢΥե
Τ褦ˤޤ

	$HOST        = "žۥ̾";
	$SMTP_SENDER = 'ml-admin@žɥᥤ';
	1;

⤷ML Ȥ $SMTP_SENDER ѹʤ

	$HOST="žۥ̾";
	$myDOMAIN = 'žɥᥤ';

	$SMTP_SENDER = $MAINTAINER;
	$SMTP_SENDER =~ s/$DOMAINNAME/$myDOMAIN/;
	1;

ʤɤȤ SMTP_SENDER ưŪѹΤڤǤ礦

3	Internal

3.1	SMTP饤֥ˤĤ

SMTP 饤֥ SMTP(ץ̿) sendmail MTA(Mail
Transport Agent)̿饤֥Ǥ

$PORT = 25 (25/tcp) ̿ޤ

	$PORT 

Ѥ뤳Ȥ̤ΥݡȤ̿뤳ȤǤޤޤ̾

	$SMTP_LOG (default "var/log/_smtplog")

Ȥե̿ΥĤޤΥϥǥХåΩ
ޤ

	$NOT_TRACE_SMTP 

򥻥åȤȡΥϻĤޤ

ޤɤΥޥ sendmail Ȥ⼫ͳǤޤǥե
ϤΥޥǤ⤷MLФΥޥ(ޥ)ϼʤ餽Υޥ
󤬲̤᡼ФΤϹǤ

	$HOST         = 'localhost'; (default)

ѿ $HOST 񤭴̤ΥޥǤȤǤ
λ

	$HOST         = 'beth.foo.bar.ac.jp'; (another host)

Τ褦ˤΥޥ̾񤤤Ʋ󥢥ǤʤޥȤ
ǤϤǤޤ(äꤹ)ˤΥޥΥѥȤȤˤʤ
ΤǤΥޥȤĤ٤Ǥ

HOSTǤϥݡֹ椬25ǤʤMTAؤΥǽǤ㤨 port
10025/tcp ȤȤǤޤ

	$HOST         = 'beth.foo.bar.ac.jp:10025'; 

3.2	ͽSMTP

⤷ SMTP Ф˲äΤ @HOSTS ʣͽ 
sendmail äƤޥ뤳Ȥޤ

   @HOSTS = (machine-1.domain, machine-2.domain, machine-3.domain, ...);

ξ硢⤷ $HOST  connect() Ǥʤϡmachine-1 ˡ
⤷ machine-1  connect() Ǥʤ machine-2 ءĤȤ
ͽΥФȤȤ򤷤褦Ȼߤޤ
ä sendmail ޥɤȤäߤޤ
sendmail ʤƥǤ qmail-smtpd, exim dޤ

3.3	SMTP  MAIL FROM:  $MAINTAINER ʳˤ

$SMTP_SENDER ˻ꤷƲ	  

: ץХ(㤨 fml.org Ȥ)кΤᡢMAIL
FROM: Υɥᥤ̾ͳˤǤʤʤɤ˻Ȥޤ

	$MAINTAINER  = 'elena-admin@nuinui.net';
	$SMTP_SENDER = 'elena-admin@fml.org';

3.4	ƱmxˤĤ

sendmail 8.xǤCHANGES-R5-R8ˤȤꢭ

   For example, if two sites ``foo.com'' and ``bar.com'' are both
   served by UUNET, they will have the same set of MX hosts and will
   be sent in one transaction.  UUNET will then split the message

̤ޤФФν֤Ǥס

sendmail 5.xǤ@.*ʬ̩Ʊǡˤ¤ǽ񤤤Ƥ


	fukachan@phys.titech.ac.jp	
	Elena@phys.titech.ac.jp	
	cocoa@phys.titech.ac.jp	

̤ˤޤȤޤ

qmail 1.0 ϤȤ򤻤٤ͤҤ
ꤲĤޤ()

3.5	MCI Cache

TCP Connection Cache δŪʥǥ TCP Connection ΤΥ
ι⤵Ǥ

ȤȤ sendmail 

	for (Ĥ٤ۥȤΥꥹȡ) {
		åȡͥȡ̿ޤ
	}

İĤʤޤ ̿٤ʤ
TIMEOUT  error ޤĹ̵̤ꤨޤ

sendmail 8.7 ǤɸǤޤ
#ȤΤꤵWIDEѤä äƤĤǤ

	for (Ĥ٤ۥȤΥꥹȡ) {
		å1
		å2
		

		󤰤ˤޤ路Ƥäơ
		̿䤹 connection ͥŪ
		̿(Ĥޤ)

		ġġ
	}
	#äȡñ᤮ʢ

Τ褦ˡä뤳ȤǽʥۥȤؤɤɤäơܤʤȤ
ܤʤޤޤǤɤƤʤ顢Ǹ queue up ơ30ʬ
Ȥ retry Ǥ

̣ǡMCI CACHE ¿ ʥۥȤ23Ĥʤ餫ʤ
Ū®٤ǤǤ礦⤷MCI_CACHE 2Ĥǡ2Ĥʥۥ
ȡǤФ餯ĤƤޤΤǡ٤ʤäƤޤ R5 Τ
ˤʤäƤޤȡ

̣ MCI CACHE ¿¿ۤɤ褵˸ޤ
 ٤ϥͥޤ礤ĤʤʤΤǡޤĤ
ʤΤǤ礦͡

 1ĤΥ᡼Ͼ1ŤΤǤ礦?

 (multi thread kernel ǤʤΤʤ) kernel ǤϤʤ餺 
CurrentProcess ¹ԤƤΤ顢YES Ǥ ̿ϤƤʤ
Ƥ Connection Τ OkN  N (MAX) ACTIVE ʤޤޤǤ(netstat 
ߤ)

ˤ MX Cache ȹ蘆äơR8R5ˤ˹®
ޤ͡

3.6	ΨˤĤƤιͻ

ΨˤĤƤιͻ

3.7	ץΧ®ʳȤ

Χ®ʳϤäѤ sendmailץΤΤǤ礦ʬ 
overhead  R5 ˤ R8 Ǥ˲ޤǤ⤫ʤ 
overhead ޤsingle thread Ǥ뤳ȤװΰĤǤ
٤򤢤뤿ˤϡSMTP connection  DNS query 󲽤ʤ
ޤ󡣹®ˤ㤨 smtpfeed ѤƲ:)
qmail vs smtpfeed: ʣΥץΩ夲Ȥ˽ 
qmail ˤʤޤ;_;ξǤϥޥ٤ϰŪ˰㤦ϤǤ
륢ɥ쥹ʬۤΥڥȥ뤬򿧻֤ʤ֤Ϥޤ
ʤ褦˿񤦤Ǥ礦͡

դˤ fml Τ tuning ®٤㤨 0.1 sec 夲Ƥ ML 
ץˤϲΥåȤʤȤȤǤ⤢ޤŪˤ
MTAΥ塼䵡ǽ󲽤˹ͤ٤Ǥ

	ʬʥѥΥޥǽʬ file descriptor  
	¿ process äƤפǤС
	ʣ sendmail ưߤ롣
	ξ Load Average  sendmail.cf  tune 
	ɬפޤͤ qmail ȸƤ֤Ȥä⤢ޤ()

	ϤǤʣΥޥѰդǤʤʣΥޥǥѥ˼¹

	졼ФѰդ롣㤨̡̤Τ褦ʬ
	󤽤Υ졼Фꤲơ򤹤롣

12 fml  $MCI_* ѿǽˤޤ

3Υ졼Фϳƥ桼ȤˡɴԡɤǤޤ
ͤ٤ȤȤƥ졼ФΥޥ٤򤫤뤳Ȥ
ʤƤϤʤޤ󡣤ޤͥåȥȥݥθξ٤
ƸߤǤSPAMѤΤ̥졼ϤǤʤΤΥۥ
ȤΥ졼ϤƤ餦ʤɤѹɬפʤȤˤդ


ʤ $DEFAULT_RELAY_SERVER Ƥ϶ŪƤΥ᡼

	$DEFAULT_RELAY_SERVER

줿졼ФꤲΥФƤ餦ȤȤ
ޤ
See also: 4.2 

qmail ȤҤץ fork() ޤäơͤˤФ
ФꤲMTAޤλǥХåܡʤ餤Ȼ
ޤ٤ΥȤˤФФꤲդƤޤ褦ˤʤä
Ǥ͡ɤʤƤϸǤ顣
	http://www.qmail.org/

4	졼ФȤ

졼ʤ󤫶ػߤȤȤ⤢뤳Ȥդޤ礦̤ͣܥ
졼Сܥ졼ФʤƤȤ򤷤ƤΤϿʬΤäǤ

ǶǤ SPAM Τǥ졼ϴŪ˶ػߤǤ餢ޤ̣
󡣤󤪸ߤ˹դξIPɥ쥹١ǥåƥ졼
ʤɤϹͤޤ

4.1	activesեˤ졼

actives ˤ

	ɥ쥹			졼С
	fukachan@phys.titech.ac.jp	r=axion.phys.titech.ac.jp

Τ褦ʽǤޤ򤹤 sendmail ˤ

	@axion.phys.titech.ac.jp:fukachan@phys.titech.ac.jp

Τ褦Ϥޤactives ե

	fukachan@phys.titech.ac.jp	r=axion.phys.titech.ac.jp
	Elena@phys.titech.ac.jp		r=axion.phys.titech.ac.jp
	cocoa@phys.titech.ac.jp		r=axion.phys.titech.ac.jp

ʤΤ

	@axion.phys.titech.ac.jp:fukachan@phys.titech.ac.jp
	@axion.phys.titech.ac.jp:Elena@phys.titech.ac.jp
	@axion.phys.titech.ac.jp:cocoa@phys.titech.ac.jp

Τ褦Ϥޤsendmail 8.x Ǥ axion.phys.titech.ac.jp 
ǰ̤ˤޤȤaxion.phys.titech.ac.jp 3̤ˤФ餱ޤ

ѥåȤο⥵ФôڤʤΤǤ⤷졼ƤȤĤ
Фɤǥ졼ФȤȤǤ͡

[ª]

fml 1.3.2  actives ɽĥΤ㤦ˤʤäƤޤ
ŤեޥåȤǽ񤤤ϡưŪNEW FORMAT ˼ưѴƲ
Ƥޤ
See also: internals 8 

OLD FORMATǤ

	fukachan@phys.titech.ac.jp	axion.phys.titech.ac.jp

NEW FORMATǤ

	fukachan@phys.titech.ac.jp	r=axion.phys.titech.ac.jp

4.2	ƤΥ᡼졼Фꤲ

$DEFAULT_RELAY_SERVER Ƥ϶ŪƤΥ᡼

	$DEFAULT_RELAY_SERVER

줿졼ФꤲΥФޤ

4.3	activesեˤ졼 (sendmail 5.x)

	fukachan@phys.titech.ac.jp	r=axion.phys.titech.ac.jp
	Elena@phys.titech.ac.jp		r=axion.phys.titech.ac.jp
	cocoa@phys.titech.ac.jp		r=axion.phys.titech.ac.jp

Τ褦˽֤¤ǤʤȰ̤ˤʤäƤޤΤա
ʳ8.xλȰǤ

4.4	CF (by motonori@wide.ad.jp) ˤ relay ե

$RELAY_HACK = 1; åȤ졢$CF_DEF  STATIC_ROUTE_FILE 
static 롼򵭤ե뤬ꤵ줿硢˽äƥ졼
Ф꤬ޤ

CF 1:
or.jp ɥᥤ󰸤Υ᡼ mlrelay0.domain0 롣ʳ 
$HOST (̾ＫʬΥޥ) ޥԤʤ

	GW smtp-ignmx:  mlrelay0.domain0
	DOM or.jp

CF 2:
co.jp ˥ޥåʤɥᥤ󰸤Υ᡼Ϥ٤ mlrelay.domain Ȥ
롣 or.jp ɥᥤ󰸤ΤΤ mlrelay0.domain0 롣

	NGW smtp-ignmx: mlrelay.domain
	DOM co.jp
	GW smtp-ignmx:  mlrelay0.domain0
	DOM or.jp

졼ϥϥåơ֥ %RELAY_NGW %RELAY_GW %RELAY_NGW_DOM 
졢smtp library Ѥޤ

5	IPv6

5.1	4.0-current (2001/05/11 ʹ)

 IPv6 ǥ᡼륵Ф³뤳Ȥĩ路Ƥߤޤ
ơ⤷Ԥ IPv4 ĩ路ޤ
줬ǥեȤưǤ

5.2	ɬפʥ⥸塼

Socket6 ɬפǤŬ󥹥ȡ뤷Ʋ

5.3	IPv6 ̵ˤ

$USE_INET6  0 ˤ IPv4 ꡼ޤ

6	Q&A

6.1	root ¤ʤ MTA 򴹤ϡ

̤ˤϤǤޤ

Ūˤ餤Ϥ󤻤ФǤ褦ˤ⤤ޤ
¤ɤΤʤȤǤʤǤ礦

smtpfeed ٤Ф󤸤󡩤ȤȯۤϤޤ
fml  queue ϤƤʤΤ
Ԥ餽Τޤޤˤʤޤ

ͳˤ fml (1997/10/30 餤) LMTP ޤ
smtpfeed ľܼ¹ԤȤȤߤϼƤޤ

6.2	smtpfeed ľܸƤ٤ޤ󤫡

   smtpfeed ʬ""ΥȤǤ

   fork() οäƴ򤷤:) ʤʤ򤷤(ȤΤϤäȤ
   )queueϤʤ(¦ΰո)
   Ȥ

   queueϤʤäƤΤϡ fml  smtpfeed ľܤˤ
   ꤹ褦˼ϡ褫餪Ǥꤵ줿Ȥˤ
   ᡼긵 queue ¸ꤷʤȤʤʤäơ
   Ȥ queue ɤʤäƤ뤫İꤹŻ fml
   ˤȭäƤȤȤǤ礦

6.3	MTA ߤ

   	1	@HOSTS ʣΤۤȤMTAȤޤ
   		@HOSTS = (hostA, hostB, hostC, ...)
   	2	document ˽񤤤Ƥʤ hostA ΤȤ 
   		hostA:portA ʤƽǤꤷޤ:)

6.4	ԥꥹȤʬ䤹

fml 4.0 ǼưǤΤϤäȤҤȹɬפǤ

MTA ɽƤȤɬפǤ
postfix  ˤȤޤ

4.0  $MCI_SMTP_HOSTS ͤꥹȤʬ䤷Ƥޤ
Կ 4500 ǡ$MCI_SMTP_HOSTS  3 ʤ顢

	1500 
	1500 
	1500 	

ʬ䤷ޤ(MCI window ȸƤФƤޤ)@HOSTS ʤʤ $HOSTS
(== "localhost" by default) Ф3󥳥ͥĥޤ

	$MCI_SMTP_HOSTS = Կ / 1000 + 1;

׻ OK ǤäȤΤ (ä꤫)

 $START_HOOK = q#

	$limit = `postconf smtpd_recipient_limit` ƿ餦;
	$n     = `wc $ACTIVE_LIST` ƼԿ;
	$MCI_SMTP_HOSTS = $n / $limit + 1;

 #;

ߤˤƤ postfix ȼưɽƤϤǤ


		INDEX

_smtplog                                   ...   2.1 
$CF_DEF                                    ...   4.4 
$DEFAULT_RELAY_SERVER                      ...   3.7 4.2 
$HOST                                      ...   3.1 
@HOST(@HOSTSεѿ̾)                    ...   2.5 
@HOSTS                                     ...   2.5 3.2 
$HOSTS                                     ...   2.5 
MCI                                        ...   3.5 
MTA (Mail Transport Agent)                 ...   3.1 
mx                                         ...   3.4 
$NOT_TRACE_SMTP                            ...   3.1 
$NOT_TRACE_SMTP                            ...   2.1 
$PORT                                      ...   3.1 
%RELAY_GW                                  ...   4.4 
$RELAY_HACK                                ...   4.4 
%RELAY_NGW                                 ...   4.4 
%RELAY_NGW_DOM                             ...   4.4 
relay hack based on CF (by motonori@wide.ad.jp)   ...   4.4 
SMTP (Simple Mail Transfer Protocol)       ...   3.1 
$SMTP_LOG                                  ...   2.1 3.1 
$SMTP_SORT_DOMAIN                          ...   2.2 
var/log/_smtplog                           ...   2.1 
%졼 (obsolete)                         ...   4 
ץΧ®ʳ                     ...   3.7 
ͽSMTP                           ...   3.2 
