Hello everyone,
I've been using OpenSMTPD for few months now and I'm pretty happy with
how it works and how easy it is to configure. Recently I decided to
start using MySQL database to store tables with user accounts and
aliases so I can easily connect other services to the same database. I
found a man page TABLE_MYSQL(5) which describes how to configure smtpd
to so. The problem is that I would like to have a bit different database
structure than the one described on the man page, so I created MySQL
stored procedures that can be called in order to fetch data needed by
OpenSMTPD server. And when I configured server to call these procedures
it simply crashes (when started with -v flag writes following to the log):
credentials[3280425]: debug: (re)connecting
credentials[3280425]: warn: wrong number of columns in resultset
credentials[3280425]: fatal: could not connect
warn: table-proc: imsg_read: Connection reset by peer
lookup: table-proc: exiting
Then I created same configuration as described on the man page and it
worked, but then I tried to create stored procedure which does the same
job as one of the queries:
DELIMITER $$
CREATE PROCEDURE get_aliases(IN email_var VARCHAR(255))
BEGIN
SELECT destination FROM virtuals WHERE email = email_var;
END $$
DELIMITER ;
I changed line in configuration file from this:
query_alias SELECT destination FROM virtuals WHERE email=?;
To this, so procedure is called:
query_alias CALL get_aliases(?);
But then, same error occurred again.
So my question is, am I doing something wrong. And can OpenSMTPD be
configured to call MySQL stored procedures.
Thanks,
Roko Dobovičnik