Lloyd Zusman <[EMAIL PROTECTED]> writes:

> I have been happily using TMDA for several years, but only for incoming
> mail.  I have wanted to use its outgoing mail features for a long time,
> but I keep getting discouraged every time I try, because the
> tmda-sendmail and tmda-ofmipd programs do not determine the user's TMDA
> config directory in the same way that this is done for incoming
> messages, and the mechanisms they use do not always fit well with my own
> email set-up.  Furthermore, tmda-sendmail and tmda-ofmipd don't even
> behave consistently with each other, in this regard.
>
> The purpose of this message is to discuss this issue and to perhaps
> encourage a dialog about how we can fix these inconsistencies in order
> to make TMDA more useful.

For clarification, I just want to add that I am not using
vmailmgr/vpopmail on my site.  I now realize that this is not very clear
from the way I originally wrote this message.


> First of all, I want to explain my own email setup.
>
> I host a number of domains, and I use postfix as my MTA.  Email for all
> users is kept under a central directory tree, as follows:
>
>   /var/vmail/DOMAIN/USER
>
> For example, for [EMAIL PROTECTED], the directory tree in which all
> incoming email is stored would be this:
>
>   /var/vmail/domain.tld/someone
>
> All of these directories are owned by the "vmail" user and the "vmail"
> group.  In other words, they all are associated with the same unix user
> ID.  The HOME directory for the "vmail" user is "/var/vmail".  This is
> one of the issues that causes me to have problems tmda-sendmail and
> tmda-ofmipd.  I'll explain further, below.
>
> But first, I want to finish the description of my email set-up.  I only
> store email in the /var/vmail/DOMAIN/USER tree.  Any ancillary
> user-specific files and directories (such as the .tmda directory)
> are kept in a parallel tree named as follows:
>
>   /var/vmusers/DOMAIN/USER
>
> For example, if [EMAIL PROTECTED] has TMDA set up, the path to the
> .tmda directory would be this:
>
>   /var/vmusers/domain.tld/someone/.tmda
>
> I am able to manage this by means of a few small changes in the
> /etc/tmdarc file.
>
> The reason I separate these trees is twofold: (1) I don't want meta-data
> to be viewable or trashable via software that accesses the email itself;
> (2) it makes maintenance and email administration much cleaner for me if
> the data and meta-data are separated.
>
> This structure is maintained within a MySQL database.
>
> My set-up has been working well for me for years.
>
> So now, we come to the issues I have with the TMDA software.  First,
> let's look at tmda-ofmipd.
>
> While incoming tmda software uses /etc/tmdarc to determine where to look
> for a user's .tmda directory, tmda-ofmipd seems to not use the data in
> this file in the same way, if at all.  Rather, it seems to use different
> mechanisms.  There are four of these, although the only one which works
> on my site is the one managed by the --vhome-script parameter.  Here's a
> description of all four mechanisms, and the my reason for why
> --vhome-script is the only useful parameter:
>
>   1. Default to the ~user/.tmda directory.  This doesn't work under my
>      environment, because tmda-ofmipd uses this python call to determine
>      this location:
>
>        os.path.join(os.path.expanduser('~'), '.tmda')
>
>      This always gives /var/vmail/.tmda on my system, because as you'll
>      recall, all email users have the same "vmail" user ID.
>
>   2. The --vdomains-path option.  I can't use this on my system, because
>      I don't use qmail nor vmailmgr.
>
>   3. The --configdir option to determine the location of the .tmda
>      directory.  However, this doesn't work on my system, either,
>      because for any given email user "someone", the .tmda config
>      directory is located as follows:
>
>        CONFIGDIR/someone
>
>      where CONFIGDIR is the argument to the --configdir parameter.  For
>      example, if we have this
>
>        --configdir /var/vmusers/tmda
>
>      then tmda-ofmipd will use the following directory to find the TMDA
>      config file:
>
>        /var/vmusers/tmda/someone
>
>      This is clearly different from the standard TMDA directory that
>      is used for incoming mail on my system, namely this:
>
>        /var/vmusers/domain.tld/someone/.tmda
>
>   4. The --vhome-script parameter.  This works on my system, because I
>      can cause it to generate the proper directory path to my TMDA
>      config directory.  The tmda-ofmipd utility makes use of the
>      Util.getvuserhomedir in order to resolve this directory name.
>  
> So far so good.  However, in the case of tmda-sendmail, I can't use
> --vhome-script, because that option is not even offered in
> tmda-sendmail.  Furthermore, instead of using Util.getvuserhomedir, that
> utility uses Util.gethomedir in order to locate the .tmda directory.
> That routine uses pwd.getpwdnam to get the path to HOME.  This means
> that on my system, there is no way that tmda-sendmail can be made to
> point to the same TMDA config directory that tmda-ofmipd uses.
>
> In other words, there are at least three separate mechanisms for
> calculating a user's TMDA configure directory that are currently in use
> in TMDA:
>
> 1. For incoming messages, code and variables in /etc/tmdarc are used.
>
> 2. In tmda-ofmipd, /etc/tmdarc seems to be ignored, or if it's loaded,
>    this is done at the wrong time in the program startup sequence.  This
>    forces me to use one of the four mechanisms listed above, of which
>    --vhome-script is the only one which works on my system.
>
> 3. In tmda-sendmail, /etc/tmdarc seems to be ignored or loaded at the
>    wrong time, and to make things even worse, I can't use
>    --vhome-script.
>
> I'm sad to say that this is a mess.
>
> In order to fix this, I recommend the following changes:
>
> A. All TMDA utilities should load /etc/tmdarc at the appropriate time in
>    order to determine the location of the TMDA config directory.
>
> B. All TMDA utilities, especially tmda-sendmail, should make use of
>    --vhome-script and --configdir in exactly the same ways that
>    tmda-ofmipd uses them.  In fact, all these utilities should use the
>    _exact_ _same_ logic for locating the TMDA config directory for a
>    given user.  This sould be equally true for utilities used for
>    incoming mail (such as tmda-pending, tmda-filter, etc.) and
>    outgoing mail (such as tmda-ofmipd, tmda-sendmail, etc.).
>
> C. In all TMDA utilities, only make calls to os.path.expanduser('~'),
>    pwd.getpwdnam and other similar functions as a last resort, if all
>    other higher-level mechanisms fail.  And again, always use the
>    _exact_ _same_ logic for deciding when to call these functions
>    and how to use their results, no matter what TMDA utility is in
>    use.
>
> In other words, I am advocating maximal consistency among all the
> TMDA utilities with regard to something as basic and important as
> locating the TMDA config directory.
>
> I'm eager to hear your opinions and ideas concerning these issues.
>
>
> -- 
>  Lloyd Zusman
>  [EMAIL PROTECTED]
>  God bless you.
>

-- 
 Lloyd Zusman
 [EMAIL PROTECTED]
 God bless you.

_____________________________________________
tmda-users mailing list ([email protected])
http://tmda.net/lists/listinfo/tmda-users

Reply via email to