MYSQL_TABLE(5) File Formats Manual MYSQL_TABLE(5) NAME mysql_table - Postfix MySQL client configuration SYNOPSIS postmap -q "string" mysql:/etc/postfix/filename postmap -q - mysql:/etc/postfix/filename =3.2: client, <= 3.1: empty) Read options from the given group of the mysql options file, after reading options from the [client] group. Postfix 3.2 and later read [client] option group settings by default. To disable this specify no option_file and specify "option_group =" (i.e. an empty value). Postfix 3.1 and earlier don't read [client] option group settings unless a non-empty option_file or option_group value are specified. To enable this, specify, for example, "option_group = client". This parameter is available with Postfix 2.11 and later. require_result_set (default: yes) If "yes", require that every query returns a result set. If "no", treat the absence of a result set as "not found". This parameter is available with Postfix 3.2 and later. tls_cert_file File containing client's X509 certificate. This parameter is available with Postfix 2.11 and later. tls_key_file File containing the private key corresponding to tls_cert_file. This parameter is available with Postfix 2.11 and later. tls_CAfile File containing certificates for all of the X509 Certification Authorities the client will recognize. Takes precedence over tls_CApath. This parameter is available with Postfix 2.11 and later. tls_CApath Directory containing X509 Certification Authority certificates in separate individual files. This parameter is available with Postfix 2.11 and later. tls_ciphers The list of permissible ciphers for SSL encryption. This parameter is available with Postfix 2.11 and later. tls_verify_cert (default: no) Verify that the server's name matches the common name in the certificate. This parameter is available with Postfix 2.11 and later. USING MYSQL STORED PROCEDURES Postfix 3.2 and later support calling a stored procedure instead of using a SELECT statement in the query, e.g. query = CALL lookup('%s') The previously described '%' expansions can be used in the parameter(s) to the stored procedure. By default, every stored procedure call must return a result set, i.e. every code path must execute a SELECT statement that returns a result set (instead of storing its results in a table). With "require_result_set = no", the absence of a result set is treated as "not found". A stored procedure must not return multiple result sets. That is, there must be no code path that executes multiple SELECT statements that return a result (instead of storing their results in a table). The following is an example of a stored procedure returning a single result set: CREATE [DEFINER=`user`@`host`] PROCEDURE `lookup`(IN `param` VARCHAR(255)) READS SQL DATA SQL SECURITY INVOKER BEGIN select goto from alias where address=param; END OBSOLETE MAIN.CF PARAMETERS For compatibility with other Postfix lookup tables, MySQL parameters can also be defined in main.cf. In order to do that, specify as MySQL source a name that doesn't begin with a slash or a dot. The MySQL parameters will then be accessible as the name you've given the source in its definition, an underscore, and the name of the parameter. For example, if the map is specified as "mysql:mysqlname", the parameter "hosts" would be defined in main.cf as "mysqlname_hosts". Note: with this form, the passwords for the MySQL sources are written in main.cf, which is normally world-readable. Support for this form will be removed in a future Postfix version. OBSOLETE QUERY INTERFACE This section describes an interface that is deprecated as of Postfix 2.2. It is replaced by the more general query interface described above. If the query parameter is defined, the legacy parameters described here ignored. Please migrate to the new interface as the legacy interface may be removed in a future release. The following parameters can be used to fill in a SELECT template statement of the form: SELECT [select_field] FROM [table] WHERE [where_field] = '%s' [additional_conditions] The specifier %s is replaced by the search string, and is escaped so if it contains single quotes or other odd characters, it will not cause a parse error, or worse, a security problem. select_field The SQL "select" parameter. Example: select_field = forw_addr table The SQL "select .. from" table name. Example: table = mxaliases where_field The SQL "select .. where" parameter. Example: where_field = alias additional_conditions Additional conditions to the SQL query. Example: additional_conditions = AND status = 'paid' SEE ALSO postmap(1), Postfix lookup table maintenance postconf(5), configuration parameters ldap_table(5), LDAP lookup tables pgsql_table(5), PostgreSQL lookup tables sqlite_table(5), SQLite lookup tables README FILES Use "postconf readme_directory" or "postconf html_directory" to locate this information. DATABASE_README, Postfix lookup table overview MYSQL_README, Postfix MYSQL client guide LICENSE The Secure Mailer license must be distributed with this software. HISTORY MySQL support was introduced with Postfix version 1.0. AUTHOR(S) Original implementation by: Scott Cotton, Joshua Marcus IC Group, Inc. Further enhancements by: Liviu Daia Institute of Mathematics of the Romanian Academy P.O. BOX 1-764 RO-014700 Bucharest, ROMANIA Stored-procedure support by John Fawcett. Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA MYSQL_TABLE(5)