On Sun, 29 Mar 2009 07:53:16 +0800 (SGT)
p...@sg.homeunix.com wrote:
> > On Sat, 28 Mar 2009 08:20:53 +0800 (SGT)
> > p...@sg.homeunix.com wrote:
> >>      Basically i need to deny incoming connections from non-local
> >> clients
> >> based on whether they have authenticated or not. So if an external
> >> sending server doesn't authenticate with us, he can't even send to
> >> local recipient.
> >>
> >>      with my previous qmail installation i just needed to define
> >> "REQUIRE_AUTH" in my tcprules file. just how do it do it with
> >> qpsmtpd?
> >
> > Load the "check_relay" plugin and a plugin like this (before any other
> > rcpt checking plugin)
> >
> > sub hook_rcpt {
> >    my ($self, $qp, $recipient, @args) = @_;
> >    # relay_client is true if a client has authed or set as
> >    # relay client by the "check_relay" plugin.
> >    return (DENY, "Sending host is not local or authed")
> >      unless $self->qp->connection->relay_client;
> >
> >    return DECLINED;
> > }

> Sorry, but i'm quite new to this. do i create a plugin eg. require_auth in
> the plugins directory, copy and paste your code into it and load the
Yes (but: both plugins must be loaded: check_relay and require_auth,
in that order).
> plugin in the peers/0 file? or what do i do?
If you're not running smeserver, this is probably the wrong
directory/file to list your new plugin. The default installation loads
it's plugins from the "config/plugins" file, see
http://github.com/abh/qpsmtpd/blob/f52d16536498242c29e5d8a51aa75e5546ef7469/docs/plugins.pod
and
http://github.com/abh/qpsmtpd/blob/f52d16536498242c29e5d8a51aa75e5546ef7469/docs/config.pod

        Hanno


Reply via email to