<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.8.5">
</HEAD>
<BODY>
Hi Jim,<BR>
<BR>
It took me more time than expected to fix this :-) <BR>
<BR>
The problem is caused beacuse you are using old postfix mysql interface<BR>
(which wasn't supported by valvula):<BR>
<BR>
<BLOCKQUOTE>
    <FONT COLOR="#003366">I: Declaration found: (virtual_alias_maps) [select_field] -> [goto]</FONT><BR>
    <FONT COLOR="#003366">I: Declaration found: (virtual_alias_maps) [where_field] -> [address]</FONT><BR>
    <FONT COLOR="#003366">I: Declaration found: (virtual_alias_maps) [additional_conditions] -> [and active = '1']</FONT><BR>
    <BR>
</BLOCKQUOTE>
Now it is supported. If you upgrade valvula (334) it should be able to<BR>
detect this declarations too out of the box:<BR>
<BR>
<BLOCKQUOTE>
    <FONT COLOR="#003366">>> valvulad --version</FONT><BR>
    <FONT COLOR="#003366">1.0.8.b334</FONT><BR>
</BLOCKQUOTE>
Let's see if this fixes your case,<BR>
Best Regards,<BR>
<BR>
<BR>
<BR>
<BR>
El lun, 12-06-2017 a las 09:13 -0400, Jim Bassett escribió:<BR>
<BLOCKQUOTE TYPE=CITE>
    Hi Francis.
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    I changed my /etc/postfix/main.cf to remove the use of the $config_directory variable. That solved the issue we were seeing where valvula couldn’t open the mysql_virtual_ mapping files. But I’m still getting the same result:
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    # valvulad -l <A HREF="mailto:jim@datamantic.com">jim@datamantic.com</A> -o -d<BR>
    I: file /etc/valvula/valvula.conf loaded, ok<BR>
    I: server configuration is valid..<BR>
    I: Loading local domains configuration..<BR>
    I: Working with postfix declaration: proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf (from /etc/postfix/main.cf)<BR>
    I: Found postfix mysql configuration, opening: /etc/postfix/mysql_virtual_alias_maps.cf..<BR>
    I: Declaration found: (virtual_alias_maps) [user] -> [postfix]<BR>
    I: Declaration found: (virtual_alias_maps) [password] -> [xxxxx]<BR>
    I: Declaration found: (virtual_alias_maps) [hosts] -> [localhost]<BR>
    I: Declaration found: (virtual_alias_maps) [dbname] -> [mail]<BR>
    I: Declaration found: (virtual_alias_maps) [table] -> [alias]<BR>
    I: Declaration found: (virtual_alias_maps) [select_field] -> [goto]<BR>
    I: Declaration found: (virtual_alias_maps) [where_field] -> [address]<BR>
    I: Declaration found: (virtual_alias_maps) [additional_conditions] -> [and active = '1']<BR>
    I: Working with postfix declaration: proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf (from /etc/postfix/main.cf)<BR>
    I: Found postfix mysql configuration, opening: /etc/postfix/mysql_virtual_domains_maps.cf..<BR>
    I: Declaration found: (virtual_mailbox_domains) [user] -> [postfix]<BR>
    I: Declaration found: (virtual_mailbox_domains) [password] -> [xxxxx]<BR>
    I: Declaration found: (virtual_mailbox_domains) [hosts] -> [localhost]<BR>
    I: Declaration found: (virtual_mailbox_domains) [dbname] -> [mail]<BR>
    I: Declaration found: (virtual_mailbox_domains) [table] -> [domain]<BR>
    I: Declaration found: (virtual_mailbox_domains) [select_field] -> [domain]<BR>
    I: Declaration found: (virtual_mailbox_domains) [where_field] -> [domain]<BR>
    I: Declaration found: (virtual_mailbox_domains) [additional_conditions] -> [and backupmx = '0' and active = '1']<BR>
    I: Working with postfix declaration: proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf (from /etc/postfix/main.cf)<BR>
    I: Found postfix mysql configuration, opening: /etc/postfix/mysql_virtual_mailbox_maps.cf..<BR>
    I: Declaration found: (virtual_mailbox_maps) [user] -> [postfix]<BR>
    I: Declaration found: (virtual_mailbox_maps) [password] -> [xxxxx]<BR>
    I: Declaration found: (virtual_mailbox_maps) [hosts] -> [localhost]<BR>
    I: Declaration found: (virtual_mailbox_maps) [dbname] -> [mail]<BR>
    I: Declaration found: (virtual_mailbox_maps) [table] -> [mailbox]<BR>
    I: Declaration found: (virtual_mailbox_maps) [select_field] -> [CONCAT(domain,'/',maildir)]<BR>
    I: Declaration found: (virtual_mailbox_maps) [where_field] -> [username]<BR>
    I: Registering localhost..<BR>
    I: Registering <A HREF="http://oak.datamantic.com">oak.datamantic.com</A>..<BR>
    ERROR: <A HREF="mailto:jim@datamantic.com">jim@datamantic.com</A> is not a local domain nor a local address
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BLOCKQUOTE TYPE=CITE>
        On Jun 12, 2017, at 5:06 AM, Francis Brosnan Blázquez <<A HREF="mailto:francis.brosnan@aspl.es">francis.brosnan@aspl.es</A>> wrote:
    </BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BLOCKQUOTE TYPE=CITE>
        <BR>
    </BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BLOCKQUOTE TYPE=CITE>
        Hi Jim,<BR>
        <BR>
        I've added support to allow handling variables while parsing postfix<BR>
        configuration files. This way, valvula now should be able to support<BR>
        your case.<BR>
        <BR>
        If you are installing with packages, try to update with packages<BR>
        already published. If you are compiling sources, get latest revision<BR>
        from <A HREF="https://github.com/asples/valvula">https://github.com/asples/valvula</A><BR>
        <BR>
        <BR>
        After installing, you should see version:<BR>
        <BR>
        >> valvulad --version<BR>
        1.0.8.b330<BR>
        <BR>
        ...and after that, it should detect your account with:<BR>
        <BR>
        >> valvulad -l <A HREF="mailto:jim@datamantic.com">jim@datamantic.com</A><BR>
        <BR>
        Please, let me know your results,<BR>
        Best Regards,<BR>
        <BR>
        <BR>
        El dom, 11-06-2017 a las 13:09 -0400, Jim Bassett escribió:<BR>
        <BLOCKQUOTE TYPE=CITE>
            Hi Francis. Thanks again! You are very nice to help me (and on a Sunday!)<BR>
            <BR>
            <BLOCKQUOTE TYPE=CITE>
                On Jun 11, 2017, at 12:28 PM, Francis Brosnan Blázquez <<A HREF="mailto:francis.brosnan@aspl.es">francis.brosnan@aspl.es</A>> wrote: <BR>
                <BR>
                Could you describe your mysql postfix setup? It should be easy to show<BR>
                it by running:<BR>
                <BR>
                >> grep mysql /etc/postfix/main.cf<BR>
                <BR>
                ...and then running "cat " over some of the<BR>
                mysql:your-file-to-map-mail-accounts, something like:<BR>
                <BR>
                >> cat  /etc/postfix/mysql-aliases.cf<BR>
                <BR>
                I need to see how your mysql configuration maps your accounts (remove<BR>
                or XXXX's users, passwords an database, but leave variables and mysql<BR>
                query).<BR>
                <BR>
                With this information I can see what's going on (I think).<BR>
                <BR>
            </BLOCKQUOTE>
            <BR>
            <BR>
            <BR>
            <BR>
            #grep mysql /etc/postfix/main.cf<BR>
            virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf<BR>
            virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf<BR>
            virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf<BR>
            <BR>
            # cat /etc/postfix/mysql_virtual_alias_maps.cf<BR>
            user = xxxxx<BR>
            password = xxxxx<BR>
            hosts = localhost<BR>
            dbname = xxxxx<BR>
            table = alias<BR>
            select_field = goto<BR>
            where_field = address<BR>
            additional_conditions = and active = '1'<BR>
            #query = SELECT goto FROM alias WHERE address='%s' AND active = ‘1'<BR>
            <BR>
            <BR>
            <BR>
            <BR>
            # cat /etc/postfix/mysql_virtual_domains_maps.cf<BR>
            user = xxxxx<BR>
            password = xxxxx<BR>
            hosts = localhost<BR>
            dbname = xxxxx<BR>
            table = domain<BR>
            select_field = domain<BR>
            where_field = domain<BR>
            additional_conditions = and backupmx = '0' and active = '1'<BR>
            #query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = ‘1'<BR>
            <BR>
            <BR>
            # cat /etc/postfix/mysql_virtual_mailbox_maps.cf<BR>
            user = xxxxx<BR>
            password = xxxxx<BR>
            hosts = localhost<BR>
            dbname = xxxxx<BR>
            table = mailbox<BR>
            select_field = CONCAT(domain,'/',maildir)<BR>
            where_field = username<BR>
            <BR>
            <BR>
            <BR>
            <BR>
            # valvulad -l <A HREF="mailto:jim@datamantic.com">jim@datamantic.com</A> -o -d<BR>
            I: file /etc/valvula/valvula.conf loaded, ok<BR>
            I: server configuration is valid..<BR>
            I: Loading local domains configuration..<BR>
            I: Working with postfix declaration: proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf (from /etc/postfix/main.cf)<BR>
            I: Found postfix mysql configuration, opening: $config_directory/mysql_virtual_alias_maps.cf..<BR>
            E: Unable to open file $config_directory/mysql_virtual_alias_maps.cf, errno=2<BR>
            I: Working with postfix declaration: proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf (from /etc/postfix/main.cf)<BR>
            I: Found postfix mysql configuration, opening: $config_directory/mysql_virtual_domains_maps.cf..<BR>
            E: Unable to open file $config_directory/mysql_virtual_domains_maps.cf, errno=2<BR>
            I: Working with postfix declaration: proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf (from /etc/postfix/main.cf)<BR>
            I: Found postfix mysql configuration, opening: $config_directory/mysql_virtual_mailbox_maps.cf..<BR>
            E: Unable to open file $config_directory/mysql_virtual_mailbox_maps.cf, errno=2<BR>
            I: Registering localhost..<BR>
            I: Registering <A HREF="http://oak.datamantic.com/">oak.datamantic.com</A>..<BR>
            ERROR: <A HREF="mailto:jim@datamantic.com">jim@datamantic.com</A> is not a local domain nor a local address<BR>
            <BR>
            <BR>
            <BR>
            <BR>
            $config_directory is defined near the top of /etc/postfix/main.cf as <BR>
            <BR>
            <BR>
            $config_directory = /etc/postfix <BR>
            <BR>
            <BR>
            but it looks like valvula is literally trying to open files like <BR>
            <BR>
            <BR>
            $config_directory/mysql_virtual_alias_maps.cf.  <BR>
            <BR>
            <BR>
            instead of expanding $config_directory into /etc/postfix? Maybe that is the problem?<BR>
            <BR>
            <BR>
        </BLOCKQUOTE>
        <BR>
        <TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
-- 
Francis Brosnan Blázquez  -  ASPL
<A HREF="http://www.asplhosting.com/">http://www.asplhosting.com/</A>
<A HREF="http://www.aspl.es/">http://www.aspl.es/</A>
<A HREF="https://twitter.com/aspl_es">https://twitter.com/aspl_es</A>
<A HREF="https://twitter.com/asplhosting">https://twitter.com/asplhosting</A>
<A HREF="https://twitter.com/francisbrosnanb">https://twitter.com/francisbrosnanb</A>
<A HREF="https://es.linkedin.com/in/francis-brosnan-blázquez-1353a218">https://es.linkedin.com/in/francis-brosnan-blázquez-1353a218</A>

91 134 14 22 - 91 134 14 45 - 91 116 07 57
Av. Juan Carlos I 13, 2ºC, Torre Garena
28806 - Alcalá de Henares (España)

AVISO LEGAL
 
En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL).
 
ASPL garantiza que los datos serán tratados con la finalidad de mantener
las oportunas relaciones comerciales o promocionales con usted o la
entidad que usted representa. No obstante, usted puede ejercitar sus
derechos de acceso, rectificación, cancelación y oposición dispuestos en
la mencionada Ley Orgánica, notificándolo por escrito a ASPL -
Protección Datos, Av. Juan Carlos I 13, 2ºC, Alcalá de Henares
(Madrid).
</PRE>
</TD>
</TR>
</TABLE>
    </BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
-- 
Francis Brosnan Blázquez  -  ASPL
http://www.asplhosting.com/
http://www.aspl.es/
https://twitter.com/aspl_es
https://twitter.com/asplhosting
https://twitter.com/francisbrosnanb
https://es.linkedin.com/in/francis-brosnan-blázquez-1353a218

91 134 14 22 - 91 134 14 45 - 91 116 07 57
Av. Juan Carlos I 13, 2ºC, Torre Garena
28806 - Alcalá de Henares (España)

AVISO LEGAL
 
En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL).
 
ASPL garantiza que los datos serán tratados con la finalidad de mantener
las oportunas relaciones comerciales o promocionales con usted o la
entidad que usted representa. No obstante, usted puede ejercitar sus
derechos de acceso, rectificación, cancelación y oposición dispuestos en
la mencionada Ley Orgánica, notificándolo por escrito a ASPL -
Protección Datos, Av. Juan Carlos I 13, 2ºC, Alcalá de Henares
(Madrid).
</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>