Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MILTER-TEST-SERVER(1)	    milter manager's manual	 MILTER-TEST-SERVER(1)

NAME
       milter-test-server - MTA	side milter protocol implemented program

SYNOPSIS
       milter-test-server [option ...]

DESCRIPTION
       milter-test-server  talks MTA side milter protocol. It can connect to a
       milter without MTA. For now, there is no	similar	tool. It is useful  to
       test  milter not	MTA + milter. For example, it can be used for the fol-
       lowing situation:

	      	milter's performance check

	      	milter's operation check

       milter-test-server can be used for simple performance check because  it
       shows elapsed time. You can confirm elapsed time	without	MTA's process-
       ing  time.  You	will find a problem of a milter	more easily because it
       doesn't depend on MTA.

       If a milter changes headers and/or body,	 milter-test-server  can  show
       changed	message.  It  can be used for testing a	milter that may	change
       headers and/or body. If it is used with	unit  testing  framework  like
       Cutter, you can write automated unit tests.

Options
       --help Shows available options and exits.

       --name=NAME
	      Uses  NAME  as  milter-test-server's name. The name is used as a
	      value of "{daemon_name}" macro for example.

	      The default value	is "milter-test-server"	that  is  the  command
	      file name.

       --connection-spec=SPEC
	      Specifies	 a socket to connect to	milter.	SPEC should be format-
	      ted as one of the	followings:

	      	unix:PATH

	      	inet:PORT

	      	inet:PORT@HOST

	      	inet:PORT@[ADDRESS]

	      	inet6:POST

	      	inet6:PORT@HOST

	      	inet6:PORT@[ADDRESS]

	      Examples:

	      	unix:/var/run/milter/milter-manager.sock

	      	inet:10025

	      	inet:10025@localhost

	      	inet:10025@[127.0.0.1]

	      	inet6:10025

	      	inet6:10025@localhost

	      	inet6:10025@[::1]

       --negotiate-version=VERSION
	      Uses VERSION as milter protocol version sent to milter.

	      The default value	is 8. The value	is the same as Sendmail	8.14's
	      default value.

       --connect-host=HOST
	      Uses HOST	as connected host.

	      The host name is passed to milter's xxfi_connect() callback.

       --connect-address=SPEC
	      Uses SPEC	as connected address. SPEC format is same as --connec-
	      tion-spec	option's SPEC.

	      The address is passed to milter's	xxfi_connect() callback.

       --connect-macro=NAME:VALUE
	      Adds a macro that	is sent	on xxfi_connect() callback. The	 macro
	      has  NAME	 name  and  VALUE  value. This option can be specified
	      N-times for N additional macros.

	      Here is an example that a	macro  that  has  "client_connections"
	      name and "1" value is sent on xxfi_connect() callback:

		  --connect-macro client_connections:1

       --helo-fqdn=FQDN
	      Uses FQDN	for 'HELO/EHLO'	SMTP command.

	      The FQDN is passed to milter's xxfi_helo() callback.

       --helo-macro=NAME:VALUE
	      Adds a macro that	is sent	on xxfi_helo() callback. The macro has
	      NAME  name and VALUE value. This option can be specified N-times
	      for N additional macros.

	      Here is an example that a	macro that has "client_ptr"  name  and
	      "unknown"	value is sent on xxfi_helo() callback:

		  --helo-macro client_ptr:unknown

       --envelope-from=FROM, -fFROM
	      Uses FROM	for 'MAIL FROM'	SMTP command.

	      The address is passed to milter's	xxfi_envfrom() callback.

       --envelope-from-macro=NAME:VALUE
	      Adds  a macro that is sent on xxfi_envfrom() callback. The macro
	      has NAME name and	VALUE value.  This  option  can	 be  specified
	      N-times for N additional macros.

	      Here  is an example that a macro that has	"client_addr" name and
	      "192.168.0.1" value is sent on xxfi_envfrom() callback:

		  --envelope-from-macro	client_addr:192.168.0.1

       --envelope-recipient=RECIPIENT, -rRECIPIENT
	      Uses RECIPIENT for 'RCPT TO' SMTP	command. If you	 want  to  use
	      multiple	 recipients,   specify	 --envelope-recipient	option
	      n-times.

	      The address  is  passed  to  milter's  xxfi_envrcpt()  callback.
	      xxfi_envrcpt() is	called for each	recipient.

       --envelope-recipient-macro=NAME:VALUE
	      Adds  a macro that is sent on xxfi_envrcpt() callback. The macro
	      has NAME name and	VALUE value.  This  option  can	 be  specified
	      N-times for N additional macros.

	      Here  is	an example that	a macro	that has "client_ptr" name and
	      "2929" value is sent on xxfi_envrcpt() callback:

		  --envelope-recipient-macro client_ptr:2929

       --data-macro=NAME:VALUE
	      Adds a macro that	is sent	on xxfi_data() callback. The macro has
	      NAME name	and VALUE value. This option can be specified  N-times
	      for N additional macros.

	      Here  is an example that a macro that has	"client_name" name and
	      "unknown"	value is sent on xxfi_data() callback:

		  --data-macro client_name:unknown

       --header=NAME:VALUE
	      Adds a header that names NAME and	its value  is  VALUE.  If  you
	      want to multiple headers,	specify	--header option	n-times.

	      The   header  is	passed	to  milter's  xxfi_header()  callback.
	      xxfi_header() is called for each header.

       --end-of-header-macro=NAME:VALUE
	      Adds a macro that	is sent	on xxfi_eoh() callback.	The macro  has
	      NAME  name and VALUE value. This option can be specified N-times
	      for N additional macros.

	      Here is an example that a	macro that has	"n_headers"  name  and
	      "100" value is sent on xxfi_eoh()	callback:

		  --end-of-header-macro	n_headers:100

       --body=CHUNK
	      Adds  CHUNK as body chunk. If you	want to	multiple chunks, spec-
	      ify --body option	n-times.

	      The  chunk  is  passed   to   milter's   xxfi_body()   callback.
	      xxfi_body() is called for	each chunk.

       --end-of-message-macro=NAME:VALUE
	      Adds  a macro that is sent on xxfi_eom() callback. The macro has
	      NAME name	and VALUE value. This option can be specified  N-times
	      for N additional macros.

	      Here  is	an  example  that  a macro that	has "elapsed" name and
	      "0.29" value is sent on xxfi_eom() callback:

		  --end-of-message-macro elapsed:0.29

       --unknown=COMMAND
	      Uses COMMAND as unknown SMTP command.

	      The command  is  passed  to  milter's  xxfi_unknown()  callback.
	      xxfi_unknown() is	called between xxfi_envrcpt() and xxfi_data().

       --authenticated-name=NAME
	      Uses NAME
	       as an authorized	user name on SMTP Auth.	It corresponds to SASL
	      login name.  NAME
	       is passed as a value of {auth_authen} on	MAIL FROM.

       --authenticated-type=TYPE
	      Uses TYPE
	       as  an authorized type on SMTP Auth. It corresponds to SASL lo-
	      gin method.  TYPE
	       is passed as a value of {auth_type} on MAIL FROM.

       --authenticated-author=AUTHOR
	      Uses AUTHOR
	       as an authorized	sender on SMTP Auth. It	 corresponds  to  SASL
	      sender.  AUTHOR
	       is passed as a value of {auth_author} on	MAIL FROM.

       --mail-file=PATH
	      Uses file	exists at PATH
	       as mail content.	If the file has	'From:'	and/or 'To:', they are
	      used for from and/or recipient addresses.

       --output-message
	      Shows  a message applied a milter. If you	want to	check milter's
	      operation	that may change	header and/or body, specify  this  op-
	      tion.

       --color=[yes|true|no|false|auto]
	      Shows  a messaged	applied	a milter with colorization if --color,
	      --color=yes or --color=true is  specified.  If  --color=auto  is
	      specified, colorization is enabled on terminal environment.

	      The default is off.

       --connection-timeout=SECONDS
	      Specifies	 timeout  on  connecting  to a milter. An error	is oc-
	      curred when a connection can't be	established in SECONDS
	       seconds.

	      The default is 300 seconds. (5 minutes)

       --reading-timeout=SECONDS
	      Specifies	timeout	on reading a response from a milter. An	 error
	      is occurred when the milter doesn't respond to a request in SEC-
	      ONDS
	       seconds.

	      The default is 10	seconds.

       --writing-timeout=SECONDS
	      Specifies	 timeout on writing a request to a milter. An error is
	      occurred when request to the milter isn't	completed in SECONDS
	       seconds.

	      The default is 10	seconds.

       --end-of-message-timeout=SECONDS
	      Specifies	timeout	on reading a response of  end-of-message  com-
	      mand from	a milter. An error is occurred when the	milter doesn't
	      complete	its  response to the end-of-message command in SECONDS
	      seconds.

	      The default is 300 seconds. (5 minutes)

       --all-timeouts=SECONDS
	      Specifies	timeout	 to  --connection-timeout,  --reading-timeout,
	      --writing-timeout	and --end-of-message-timeout at	once.

       --threads=N
	      Use N threads to request a milter.

	      The default is 0.	(main thread only)

       --verbose
	      Logs verbosely.

	      "MILTER_LOG_LEVEL=all"  environment  variable  configuration has
	      the same effect.

       --version
	      Shows version and	exits.

EXIT STATUS
       The exit	status is 0 if milter session is started and non 0  otherwise.
       milter  session can't be	started	when connection	spec is	invalid	format
       or milter-test-server can't connect to a	milter.

EXAMPLE
       The  following  example	talks  with  a	milter	that  works  on	  host
       192.168.1.29 and	is listened at 10025 port.
	   % milter-test-server	-s inet:10025@192.168.1.29

SEE ALSO
       milter-test-client (1), milter-performance-check	(1)

milter manager			 January 2022		 MILTER-TEST-SERVER(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=milter-test-server&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help