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

FreeBSD Manual Pages

  
 
  

home | help
TABLE_REDIS(5)		      File Formats Manual		TABLE_REDIS(5)

NAME
       table_redis -- format description for smtpd redis tables

DESCRIPTION
       This  manual page documents the file format of redis tables used	by the
       smtpd(8)	mail daemon.

       The  format  described  here  applies   to   tables   as	  defined   in
       smtpd.conf(5).

REDIS TABLE
       A  Redis	table allows the storing of usernames, passwords, aliases, and
       domains in a redis server.

       The table is used by smtpd(8) when authenticating a user, when user in-
       formation such as user-id and/or	home directory is required for	a  de-
       livery,	when  a	domain lookup may be required, and/or when looking for
       an alias.

       A Redis table consists of one Redis Databases with one or more keys.

       If the table is used for	authentication,	the  password  should  be  en-
       crypted	using  the crypt(3) function.  Such passwords can be generated
       using the encrypt(1) utility or smtpctl(8) encrypt command.

REDIS TABLE CONFIG FILE
       master
	     This is the IP of the master redis	server.
	     To	connect	via an unix socket use unix:/path/to/sock
	     The default is 127.0.0.1

       master_port
	     This is the port used to connect to the master redis server.
	     The default is 6379

       slave
	     This is the IP of the slave redis server, if any.
	     To	connect	via an unix socket use unix:/path/to/sock

       slave_port
	     This is the port used to connect to the  slave  redis  server  if
	     any.

       database
	     The database number to use.
	     The default is 0.

       password
	     The password to use to authenticate to the	redis server if	any.

       query_domain
	     This  is used to provide a	query for a domain query call. All the
	     '%s' are replaced
	     with the appropriate data,	in this	case it	 would	be  the	 right
	     hand side of the SMTP address.
	     This  expects  one	 string	 to be returned	with a matching	domain
	     name.

       query_userinfo
	     This is used to provide a query for looking up user information.
	     All the '%s' are replaced with the	appropriate data, in this case
	     it
	     would be the left hand side of the	SMTP address.
	     This expects three	fields to be returned an int containing	a UID,
	     an	int containing a GID
	     and a string containing the home directory	for the	user.

       query_credentials
	     This is used to provide a query for looking up  credentials.  All
	     the '%s' are replaced
	     with the appropriate data,	in this	case it	would be the left hand
	     side of the SMTP address.
	     the query expects that there are two strings returned one with a
	     user name one with	a password in encrypted	format.

       query_alias
	     This  is used to provide a	query to look up aliases. All the '%s'
	     are replaced
	     with the appropriate data,	in this	case it	would be the left hand
	     side of the SMTP address.
	     This expects one string to	be returned with  the  user  name  the
	     alias resolves to.
	     If	 the query returns an array, all the data will be concatenated
	     into one string with ',' as a separator

       query_mailaddr
	     This is used to provide a	query  to  check  if  a	 mail  address
	     exists.
	     All the '%s' are replaced with the	appropriate data, in this case
	     it	would be the SMTP address.
	     This expects an integer as	a reply, 0 = false and 1 = true

EXAMPLES
       Due  to	the  nature of redis, multiple schemas can be used. Those pro-
       vided here a known to work.

       domain
	     # redis-cli sadd domains example.net

	     in	the redis table	configuration file:
	     query_domain SISMEMBER domains %s

       userinfo
	     Hash works	well for users
	     # redis-cli HSET user:foo uid 1001
	     # redis-cli HSET user:foo gid 1001
	     # redis-cli HSET user:foo maildir /mail/foo

	     in	the redis table	configuration file:
	     query_userinfo HMGET user:%s uid gid maildir

       credentials
	     We	can extend the hash for	our user to put	credential in it
	     # redis-cli HSET user:foo login foo
	     # redis-cli HSET user:foo passwd encrypted_password

	     in	the redis table	configuration file:
	     query_credentials HMGET user:%s login passwd

       alias
	     Using redis sorted	list:
	     # redis-cli LPUSH aliases:foo@example.net foo
	     # redis-cli LPUSH aliases:bar@example.net foo

	     in	the redis table	configuration file:
	     query_alias LRANGE	aliases:%s 0 -1

       mailaddr
	     # redis-cli sadd mailaddr foo@example.net

	     in	the redis table	configuration file:
	     query_mailaddr SISMEMBER mailaddr %s

SEE ALSO
       encrypt(1), smtpd.conf(5), smtpctl(8), smtpd(8)

FreeBSD	ports 15.0		 May 14, 2015			TABLE_REDIS(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=table-redis&sektion=5&manpath=FreeBSD+Ports+15.0>

home | help