qmail Digest 25 Feb 2000 11:00:01 -0000 Issue 922

Topics (messages 37648 through 37743):

Mailserver quotas
        37648 by: TAG
        37651 by: Anand Buddhdev

Re: antirbl question
        37649 by: cmikk.uswest.net
        37689 by: up.3.am

forwarding mail
        37650 by: TAG
        37652 by: Anand Buddhdev
        37658 by: Dave Sill

Problem with ~/alias
        37653 by: Daniel Carlos
        37656 by: Dave Sill
        37660 by: Daniel Carlos
        37670 by: Dave Sill
        37703 by: Rogerio Brito

Re: Maildir and procmail
        37654 by: Len Budney
        37664 by: Tracy R Reed
        37697 by: Mikko H�nninen
        37700 by: Manfred Bartz
        37701 by: Mikko H�nninen

Re: Managing the Queue
        37655 by: Len Budney
        37693 by: Peter Samuel

Re: having problem with new qmail install and fastforward
        37657 by: Dave Sill

Re: QMail and mail relays
        37659 by: Dave Sill

Re: Any tool for mbox to Maildir conversion?
        37661 by: Bruce Guenter
        37665 by: Tracy R Reed

Re: Maildir and procmail and safecat
        37662 by: Curtis Generous
        37663 by: Len Budney
        37668 by: Sam
        37674 by: Len Budney
        37688 by: Sam
        37690 by: markd.bushwire.net
        37692 by: Paul Jarc
        37694 by: Sam
        37696 by: markd.bushwire.net
        37704 by: Sam
        37705 by: Paul Jarc
        37706 by: markd.bushwire.net
        37707 by: Sam
        37708 by: Russ Allbery
        37717 by: Paul Jarc
        37722 by: Len Budney
        37724 by: Len Budney
        37727 by: Sam
        37728 by: Paul Jarc
        37731 by: Sam
        37735 by: Uwe Ohse

mail-abuse.org test fail at step 6
        37666 by: Bufnea Darius
        37669 by: Dave Sill
        37673 by: John R Levine
        37702 by: Rogerio Brito
        37726 by: andy huhn

Re: Big and/or famous sites using qmail?
        37667 by: Paul Gregg

Re: /usr/local/sbin/qmail: No such file or directory
        37671 by: t_oo
        37672 by: Dave Sill
        37684 by: t_oo

Re: Queue-Sitters Anonymous
        37675 by: Fred Lindberg

Re: strangeness with qmail-smtpd
        37676 by: Ben Houston

qmail problem quitting
        37677 by: Miguel Sarmiento
        37683 by: Paul Jarc

qmail-smtpd password & log
        37678 by: Daniel Zen
        37740 by: Krzysztof Dabrowski

qmail behaving weird with virtualdomain
        37679 by: Mikael Schmidt

Looking for a patch to bind outgoing IP address depending on sender domain
        37680 by: Peter Bieringer

Patch for smtpdgreeting is virtual host name
        37681 by: Peter Bieringer

Semi - Newbie Question
        37682 by: Kevin Kling

Re: How to know how to display a email...
        37685 by: David L. Nicol

EXT
        37686 by: jacob.gayweb.com
        37687 by: Magnus Bodin

Ok...just about to fire it up...a few questions
        37691 by: Jon Newman
        37695 by: petervd.vuurwerk.nl

Latest news on snuffle?
        37698 by: markd.bushwire.net

fastforward
        37699 by: Onofer Dusan

Strange error
        37709 by: Jon Newman
        37711 by: markd.bushwire.net
        37712 by: Stephen Mills
        37715 by: Jon Newman
        37716 by: Stephen Mills

qmail/tcpserver total confusion
        37710 by: Robert Holder
        37718 by: up.3.am

Puzzling mail forwarding delay
        37713 by: Matthew Bloch
        37743 by: Matthew Bloch

Dates and timezones
        37714 by: Stephen Bosch

qmail-pop3d slowness
        37719 by: Juan E Suris
        37720 by: Paul Schinder
        37721 by: Juan E Suris

No Qmail after changing IP addresses
        37723 by: Derrick Hopkins
        37725 by: Derrick Hopkins

Lots of mails bouncing & Problem creating an account with an & symbol
        37729 by: john
        37738 by: Uwe Ohse

can't send mail to aol
        37730 by: kailash oswal
        37733 by: Michael Boman

How- Alias in default domain with Vpopmail
        37732 by: john

Transient non-fatal delivery errors
        37734 by: john
        37736 by: Frank Tegtmeyer
        37737 by: Frank Tegtmeyer

[ log question ] - to all Qmail adm.
        37739 by: Luka Gerzic
        37741 by: Frank Tegtmeyer
        37742 by: Uwe Ohse

Administrivia:

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To bug my human owner, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [EMAIL PROTECTED]


----------------------------------------------------------------------


Hi ALL,

I don't know if this is the right place to ask this question - but is
there a add-on program for qmail that allows you to limit the mailbox
sizes??

Thanks

Tonino




On Thu, Feb 24, 2000 at 02:34:25PM +0200, TAG wrote:

> Hi ALL,
> 
> I don't know if this is the right place to ask this question - but is
> there a add-on program for qmail that allows you to limit the mailbox
> sizes??

Look at http://www.qmail.org. There are some scripts there.

-- 
See complete headers for more info





On Wed, 23 Feb 2000 14:49:11 -0500 (EST) , [EMAIL PROTECTED] writes:
> > /usr/local/bin/tcpserver -x/etc/tcp.smtp.cdb -u 1003 -g 1002 0 25 \
> > /usr/local/bin/rblsmtpd /usr/local/bin/rblsmtpd -b -rdul.maps.vix.com \
> > /usr/local/bin/rblsmtpd -b -rrelays.mail-abuse.org \
> > /var/qmail/bin/qmail-smtpd &
> > 
> > <snip irrelevent qmail-popup stuff>
> > 
> > secondly, wouldn't it work to just put something like this in
> > /etc/tcp.smtp: 
> > 
> > open.relay.ip:allow,RELAYCLIENT=""

rblsmtpd doesn't respect RELAYCLIENT.  In other words, it will
still hijack the connection if RELAYCLIENT is set.

To get rblsmtpd out of the way, do:

open.relay.ip:allow,RBLSMTPD=""

This will let open.relay.ip deliver to you, but not relay through
you.  If, for some reason, you want them to be able to relay through
you, just append ',RELAYCLIENT=""' to the above line as usual.

-- 
Chris Mikkelson  |  It was mentioned on CNN that the prime number
[EMAIL PROTECTED] |  discovered recently is four times bigger than
                    the previous record.  -- unknown




On Thu, 24 Feb 2000 [EMAIL PROTECTED] wrote:

> On Wed, 23 Feb 2000 14:49:11 -0500 (EST) , [EMAIL PROTECTED] writes:
> > > /usr/local/bin/tcpserver -x/etc/tcp.smtp.cdb -u 1003 -g 1002 0 25 \
> > > /usr/local/bin/rblsmtpd /usr/local/bin/rblsmtpd -b -rdul.maps.vix.com \
> > > /usr/local/bin/rblsmtpd -b -rrelays.mail-abuse.org \
> > > /var/qmail/bin/qmail-smtpd &
> > > 
> > > <snip irrelevent qmail-popup stuff>
> > > 
> > > secondly, wouldn't it work to just put something like this in
> > > /etc/tcp.smtp: 
> > > 
> > > open.relay.ip:allow,RELAYCLIENT=""
> 
> rblsmtpd doesn't respect RELAYCLIENT.  In other words, it will
> still hijack the connection if RELAYCLIENT is set.
> 
> To get rblsmtpd out of the way, do:
> 
> open.relay.ip:allow,RBLSMTPD=""
> 
> This will let open.relay.ip deliver to you, but not relay through
> you.  If, for some reason, you want them to be able to relay through
> you, just append ',RELAYCLIENT=""' to the above line as usual.

That seemed to do the trick, thanks!

I still don't know what that antirbl program is for, though..

James Smallacombe                     PlantageNet, Inc. CEO and Janitor
[EMAIL PROTECTED]                                                     http://3.am
=========================================================================





Hi,

Sorry to be such a pain all the time - I have another question (suprise
:))

How do I forward mail from a maildir to another mailbox - the mail is
already there I just need to forwrd it to another mailbox on another
system??

Thanks

Tonino




On Thu, Feb 24, 2000 at 03:25:40PM +0200, TAG wrote:

> How do I forward mail from a maildir to another mailbox - the mail is
> already there I just need to forwrd it to another mailbox on another
> system??

Use pine/elm/mutt to 'bounce' the mail to another address.

-- 
See complete headers for more info




[EMAIL PROTECTED] wrote:

>How do I forward mail from a maildir to another mailbox - the mail is
>already there I just need to forwrd it to another mailbox on another
>system??

maildir2smtp from serialmail might do the trick.

-Dave




Hi,

I'm using Qmail(maildir) with Mysql, but the ~/alias isan't functions.

I know that the qmail isan't finding the path for the directory ~/alias.
Some sugestion ??

donald# cat /var/qmail/alias/.qmail-asdf
[EMAIL PROTECTED]

donald# cat /var/qmail/alias/.qmail-root 
[EMAIL PROTECTED]

948692854.376837 status: local 0/10 remote 0/20
948693951.405929 starting delivery 386: msg 39142 to local [EMAIL PROTECTED]
948693951.407579 status: local 1/10 remote 0/20
948693951.468531 delivery 386: deferral: Unable_to_find_alias_user!/
948693951.469050 status: local 0/10 remote 0/20
948694104.478237 starting delivery 387: msg 39148 to local [EMAIL PROTECTED]
948694104.480014 status: local 1/10 remote 0/20
948694104.482742 starting delivery 388: msg 39147 to local [EMAIL PROTECTED]
948694104.482801 status: local 2/10 remote 0/20
948694104.522301 delivery 388: deferral: Not_allowed_to_perform_deliveries_as_root./
948694104.524469 status: local 1/10 remote 0/20
948694104.524509 delivery 387: deferral: Not_allowed_to_perform_deliveries_as_root./


        Thanks,

Daniel Carlos
www.atarde.com.br





Daniel Carlos <[EMAIL PROTECTED]> wrote:

>I know that the qmail isan't finding the path for the directory ~/alias.
>Some sugestion ??

Show us the output of:

  grep alias /etc/passwd
  ls -ld / /var /var/qmail /var/qmail/alias

-Dave





Output:

donald# grep alias /etc/passwd
alias:*:1002:1001:User &:/var/qmail/alias:/nonexistent

donald# ls -ld / /var /var/qmail /var/qmail/alias
drwxr-xr-x  17 root   wheel  512 Jan 17 11:01 /
drwxr-xr-x  21 root   wheel  512 Feb 15 19:36 /var
drwxr-xr-x  10 root   qmail  512 Jan 18 09:50 /var/qmail
drwxr-sr-x   2 alias  qmail  512 Jan 23 12:36 /var/qmail/alias


         Daniel



On Thu, 24 Feb 2000, Dave Sill wrote:

> Daniel Carlos <[EMAIL PROTECTED]> wrote:
> 
> >I know that the qmail isan't finding the path for the directory ~/alias.
> >Some sugestion ??
> 
> Show us the output of:
> 
>   grep alias /etc/passwd
>   ls -ld / /var /var/qmail /var/qmail/alias
> 
> -Dave
> 





Daniel Carlos <[EMAIL PROTECTED]> wrote:

>donald# grep alias /etc/passwd
>alias:*:1002:1001:User &:/var/qmail/alias:/nonexistent
>
>donald# ls -ld / /var /var/qmail /var/qmail/alias
>drwxr-xr-x  17 root   wheel  512 Jan 17 11:01 /
>drwxr-xr-x  21 root   wheel  512 Feb 15 19:36 /var
>drwxr-xr-x  10 root   qmail  512 Jan 18 09:50 /var/qmail
>drwxr-sr-x   2 alias  qmail  512 Jan 23 12:36 /var/qmail/alias

But, in ealier message:

>948693951.468531 delivery 386: deferral: Unable_to_find_alias_user!/

Check the password file, e.g. using:

  ls -ld / /etc /etc/passwd

The "Unable to find alias user!" message means getpwent("alias")
failed, which means it's either not there, or the process checking
couldn't access the file.

-Dave




On Feb 24 2000, Dave Sill wrote:
> The "Unable to find alias user!" message means getpwent("alias")
> failed, which means it's either not there, or the process checking
> couldn't access the file.

        It might also help to see the output of qmail-showctl (it
        shows what it thinks is the alias uid).


        []s, Roger...

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rogerio Brito - [EMAIL PROTECTED] - http://www.ime.usp.br/~rbrito/
     Nectar homepage: http://www.linux.ime.usp.br/~rbrito/opeth/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Tracy R Reed <[EMAIL PROTECTED]> wrote:
> 
> :0
> * ^[EMAIL PROTECTED]
> * ^Subject: test
> test.`/bin/date +%m%y`/new
> 
> Mail to me with a subject of test goes to the specified maildir. Is it
> really necessary to append /new to the name of the Maildir?

Yes, unless you 1) use a patched procmail, or 2) use an external
delivery program. Ideally, you should use one with similar reliability
guarantees to qmail itself. Trusting procmail to deliver reliably seems
a little dangerous, in my opinion.

I recommend safecat, which you can find at
<http://www.pobox.com/~lbudney/linux/software/safecat.html>. Using the
embedded script `maildir', your rule would be rewritten as:

  :0w                                 <-- Needed for reliability
  * ^[EMAIL PROTECTED]
  * ^Subject: test
  |maildir test.`/bin/date +%m%y`     <-- Absolute path is better


> Before procmail would create the new mbox files for me automatically. It
> won't automatically create Maildirs for me. Anyone have a solution?

Two points for the modular approach! Wrap `maildir' in the following
script:

  #!/bin/sh
  # Create a Maildir, if it doesn't already exist
  if test ! -d "$1"
  then
    maildirmake "$1" || exit 1
  else
    if test ! -d "$1"/tmp -o ! -d "$1"/new
    then
      echo "$1" exists, but is not a maildir. 1>&2
      exit 1
    fi
  fi
  exec maildir "$1"

Note that `maildirmake' must be on the PATH given to procmail, and you
should be conscious of the path to your maildir. safecat doesn't care
whether paths are relative or absolute; I recommend absolute.  Just
prepend "$HOME/Mail/" to the maildir in the recipe above.

Len.


--
Exim seems to exhibit all the security design mistakes Sendmail has
made, only Exim handles them even more poorly than Mr. Allman does...
                                -- Dan Bernstein, author of qmail




On Thu, Feb 24, 2000 at 01:34:27AM -0800, Tracy R Reed wrote:
> Mail to me with a subect of test goes to the specified maildir. Is it really
> necessary to append /new to the name of the Maildir? If I don't the mail gets

Nevermind, I'm an idiot. I've solved both of the problems I just mentioned.
I'm not sure why appending just a / to the end of the Maildir name didn't seem
to work before but it works now. procmail also does auto-create Maildirs that
don't already exist.

--
Tracy Reed      http://www.ultraviolet.org
"Every artist is a cannibal, every poet is a thief.
 They all kill their inspiration, and sing about the grief." - U2




Len Budney <[EMAIL PROTECTED]> wrote on Thu, 24 Feb 2000:
> > Mail to me with a subject of test goes to the specified maildir. Is it
> > really necessary to append /new to the name of the Maildir?
> 
> Yes, unless you 1) use a patched procmail, or 2) use an external
> delivery program.

Or, 3) you use the latest version of procmail which supports maildirs
natively.  (I've yet to hear this confirmed working, but the version
announcement said it supports them, so...)


Regards,
Mikko
-- 
// Mikko H�nninen, aka. Wizzu  //  [EMAIL PROTECTED]  //  http://www.iki.fi/wiz/
// The Corrs list maintainer  //   net.freak  //   DALnet IRC operator /
// Interests: roleplaying, Linux, the Net, fantasy & scifi, the Corrs /
Q: How many surrealists does it take to change a light bulb?  A: Fish




Mikko H�nninen <[EMAIL PROTECTED]> writes:

> Or, 3) you use the latest version of procmail which supports maildirs
> natively.  (I've yet to hear this confirmed working, but the version
> announcement said it supports them, so...)

Yes it works, sort of...

I am using procmail v3.13.1 and it will deliver individual messages
into a directory, but it has no concept of qmail-type Maildirs or of
atomic writing as done by qmail.

To get procmail to deliver into a directory you would use a
redirection with a trailing slash, e.g.: 
                    /usr/home/mob/Maildir/new/

-- 
Manfred Bartz




Manfred Bartz <[EMAIL PROTECTED]> wrote on Fri, 25 Feb 2000:
> I am using procmail v3.13.1 and it will deliver individual messages
> into a directory, but it has no concept of qmail-type Maildirs or of
> atomic writing as done by qmail.

That's not the latest version of procmail.  I was talking about 3.14.

You can see the changes for the latest version on the procmail homepage,
at http://www.procmail.org.  To quote:

  The current version of procmail is 3.14. The current version of
  SmartList is 3.13. 

  Procmail version 3.14 adds support for the maildir mailbox format and
  the SWITCHRC variable, and fixes sundry small bugs and annoyances.

> To get procmail to deliver into a directory you would use a
> redirection with a trailing slash, e.g.: 
>                     /usr/home/mob/Maildir/new/

The new/ part shouldn't be needed with the latest procmail version.
Again, I've not verified this personally though.


Regards,
Mikko
-- 
// Mikko H�nninen, aka. Wizzu  //  [EMAIL PROTECTED]  //  http://www.iki.fi/wiz/
// The Corrs list maintainer  //   net.freak  //   DALnet IRC operator /
// Interests: roleplaying, Linux, the Net, fantasy & scifi, the Corrs /
"Why don't you pick a fight with someone your own size?"  (Dragonheart)




"Peter Samuel" <[EMAIL PROTECTED]> wrote:
> On 24 Feb 2000, D. J. Bernstein wrote:
> 
> > Peter Samuel writes:
> > > Under certain conditions it can leave the queue in a corrupt state.
> > 
> > No, it can't. See INTERNALS in the qmail package for the complete story.
> 
> I _know_ what INTERNALS says Dan, but try this test and you'll see
> that it does leave the queue in a corrupt state...qmail-queue exits
> with a 91 and does NOT unlink the mess or intd file.

That doesn't mean that the queue is ``corrupted''. If todo/INODE exists,
the message is queued. If not, the message is not queued. Period. Qmail
returns success to the caller only if the message is queued.

Lots of failures can leave various files in the queue tree--INTERNALS
discusses that at great length (for Dan). If qmail-queue is killed in
state S3, both mess/INODE and intd/INODE will exist--but the message is
not queued.

That's what qmail-clean is for. It's called by qmail-send to clean up
any lint in the queue tree. Note, though, that this takes at least 36
hours. qmail-send doesn't delete younger files, because they might
represent a message presently being queued. It's all documented in
INTERNALS.

Len.


--
Shared libraries work wonders with hulking monoliths of code. Most
programs today are hulking monoliths of code.  A kluge whose value rests
on the popularity of poor programming practice is a valuable kluge indeed.
                                -- Dan Bernstein




On Thu, 24 Feb 2000, Len Budney wrote:

> "Peter Samuel" <[EMAIL PROTECTED]> wrote:
> > On 24 Feb 2000, D. J. Bernstein wrote:
> > 
> > > Peter Samuel writes:
> > > > Under certain conditions it can leave the queue in a corrupt state.
> > > 
> > > No, it can't. See INTERNALS in the qmail package for the complete story.
> > 
> > I _know_ what INTERNALS says Dan, but try this test and you'll see
> > that it does leave the queue in a corrupt state...qmail-queue exits
> > with a 91 and does NOT unlink the mess or intd file.
> 
> That doesn't mean that the queue is ``corrupted''. If todo/INODE exists,
> the message is queued. If not, the message is not queued. Period. Qmail
> returns success to the caller only if the message is queued.
> 
> Lots of failures can leave various files in the queue tree--INTERNALS
> discusses that at great length (for Dan). If qmail-queue is killed in
> state S3, both mess/INODE and intd/INODE will exist--but the message is
> not queued.
> 
> That's what qmail-clean is for. It's called by qmail-send to clean up
> any lint in the queue tree. Note, though, that this takes at least 36
> hours. qmail-send doesn't delete younger files, because they might
> represent a message presently being queued. It's all documented in
> INTERNALS.

I know that. My choice of words was poor. I shouldn't have said
"corrupt". I'm also aware that qmail-clean will reap stray files after
36 hours.

I was giving an example of why qmail-qstat and qmail-qread can
sometimes give inconsistent results, and highlighting an inconsistent
behaviour of qmail-queue:

    - qmail-queue cleans up if the evenlope details are invalid in
    most, but not all cases.

Sorry for the confusion.

Regards
Peter
----------
Peter Samuel                                [EMAIL PROTECTED]
Technical Consultant                        or at present:
eServ. Pty Ltd                              [EMAIL PROTECTED]
Phone: +61 2 9206 3410                      Fax: +61 2 9281 1301

"If you kill all your unhappy customers, you'll only have happy ones left"





"Jon Newman" <[EMAIL PROTECTED]> wrote:

>1) I would like to keep using /var/spool/mail as the directory to hold mail.
>How can I get this     to work? I read the docs but they are unclear to me.

What's your current configuration?

>2) When I try and do a local-local test I get this error, what is going on?
>that user DOES exist:

We don't know enough about your configuration to debug this
problem. Run qmail-showctl and post the results.

Offhand, I'd guess you've configured qmail to deliver to maildirs by
default, but haven't created the maildirs properly.

-Dave




Stephen Smith <[EMAIL PROTECTED]> wrote:

>I installed tcpserver so that I can run qmail under it.  I start it with
>
>/usr/local/bin/tcpserver -R -u 505 -g 504 0 smtp \
>/var/qmail/bin/qmail-smtpd 2>&1 \ 
> | /var/qmail/bin/splogger smtpd &
>
>When running under inetd I could send mail using the "mail" program.
>Now I can't.
>
>Any suggestion?

Sure: tell us what you mean by "now I can't". If you get an error
message, tell us what it is.

"mail" shouldn't be sending via SMTP, so I don't think your problem is 
related the inetd->tcpserver change.

-Dave




On Thu, Feb 24, 2000 at 10:36:25AM +1300, Jason Haar wrote:
> Here's my cut on this script.

And I'll throw in mine as well.  It handles all three states of the
"read" flags -- new, unread, and read.
-- 
Bruce Guenter <[EMAIL PROTECTED]>                       http://em.ca/~bruceg/
#! /usr/bin/perl
# put into the public domain by Bruce Guenter <[EMAIL PROTECTED]>
# based heavily on code by Russell Nelson <[EMAIL PROTECTED]>, also in
# the public domain
# NO GUARANTEE AT ALL
#
# Creates a maildir from a mbox file

# Assumes that nothing is trying to modify the mailboxe
# version 0.00 - first release to the public.

require 'stat.pl';

sub error {
    print STDERR join("\n", @_), "\n";
    exit(1);
}

sub usage {
    print STDERR "usage: mbox2maildir <mbox file> <maildir> [ <uid> <gid> ]\n";
    exit(@_);
}

&usage(1) if $#ARGV != 1 && $#ARGV != 3;;

$mbox = $ARGV[0];
$mdir = $ARGV[1];
$uid = $ARGV[2];
$gid = $ARGV[3];

&error("can't open mbox '$mbox'") unless
    open(SPOOL, $mbox);

-d $mdir || mkdir $mdir,0700 ||
    &error("maildir '$mdir' doesn't exist and can't be created.");
chown($uid,$gid,$mdir) if defined($uid) && defined($gid);
chdir($mdir) || &error("fatal: unable to chdir to $mdir.");
-d "tmp" || mkdir("tmp",0700) || &error("unable to make tmp/ subdir");
-d "new" || mkdir("new",0700) || &error("unable to make new/ subdir");
-d "cur" || mkdir("cur",0700) || &error("unable to make cur/ subdir");
chown($uid,$gid,"tmp","new","cur") if defined($uid) && defined($gid);

$stamp = time;
sub open_msg {
    my($flags,$header) = @_;
    if($flags) {
        if($flags =~ /RO/) { $fn = "cur/$stamp.$$.mbox:2,S"; }
        elsif($flags =~ /O/) { $fn = "cur/$stamp.$$.mbox"; }
        else { $fn = "new/$stamp.$$.mbox"; }
    } else {
        $fn = "new/$stamp.$$.mbox";
    }
    $stamp++;
    close(OUT);
    open(OUT, ">$fn") || &error("unable to create new message");
    chown ($uid,$gid,$fn) if defined($uid) && defined($gid);
    print OUT @$header, "\n";
}

$in_header = 0;
while(<SPOOL>) {
    if(/^From /) {
        open_msg($flags, \@header) if $in_header;
        undef $flags;
        undef @header;
        $in_header = 1;
        push @header, "MBOX-Line: $_";
    } elsif($in_header) {
        if(/^\s+$/o) {
            $in_header = 0;
            open_msg($flags, \@header);
        } else {
            $flags = $1 if /^Status:\s+(\S+)/oi;
            push @header, $_;
        }
    } else {
        s/^>From /From /;
        print OUT || &error("unable to write to new message");
    }
}
close(SPOOL);
open_msg($flags, \@header) if $in_header;
close(OUT);




FYI I just used this script on two different mbox's and it put everything in
new. 

On Thu, Feb 24, 2000 at 10:36:25AM +1300, Jason Haar wrote:
> Speaking of that mbox2maildir tool - I notice that it doesn't attempt to
> retain read status of messages - i.e. they all go into "new" instead of into
> both "new" and "cur".
> 
> Here's my cut on this script. It runs as 
> 
> "mbox2maildir /full/path/mboxfile /full/path/maildir"
> 
> ...AND it doesn't delete the original like some of these others do! (owch!)
> 
> 
> 
> -- 
> Cheers
> 
> Jason Haar
> 
> Unix/Network Specialist, Trimble NZ
> Phone: +64 3 3391 377 Fax: +64 3 3391 417
>                



-- 
--
Tracy Reed      http://www.ultraviolet.org
"Every artist is a cannibal, every poet is a thief.
 They all kill their inspiration, and sing about the grief." - U2




According to Len Budney:
> 
> I recommend safecat, which you can find at
> <http://www.pobox.com/~lbudney/linux/software/safecat.html>. Using the
> embedded script `maildir', your rule would be rewritten as:

I'm trying to use safecat on a very busy email server, and noticed
while lookin at the output of truss(1) that all writes to the file are
being done a single character at the time:

        % cat writefile.c

        ...del...

        /* ****************************************************************** */
        void writefile(int fd) {
          char membuf[512];
          int n = 0;
          int m = 0;
          int count = 0;
          char *bufptr;

          /* Copy stdin to the output file, watching the return values each time. */
          while(1) {
            /* Read stdin into the buffer. */
            n = read(STDIN_FILENO, membuf, 512);
            if(n<0 && errno == EINTR) continue;
            if(n<0) {
              perror("Error reading input");
              exit(-1);
            }
            if(n == 0) break;

            /* Write the buffer to our file. */
            bufptr = membuf;
            for(count=0; count < n; count++) {
****>>        do{m = write(fd, bufptr, 1);} while( m==0 || (m<0 && errno == EINTR));
              if(m<0) {
                perror("Error writing output");
                exit(-1);
              }
              bufptr++;
            }
          }

Is there some special reason why large size write can't/shouldn't be done?
If there isn't, does anyone have an updated version of this routine (I'm not a C 
programmer :-(
Thanks,

--curtis




Curtis Generous <[EMAIL PROTECTED]> wrote:
> 
> I'm trying to use safecat on a very busy email server, and noticed
> while looking at the output of truss(1) that all writes to the file
> are being done a single character at the time...

That may be excessively draconian on my part! Back when I wrote safecat,
I used 1-byte writes when possible, because it eliminated the need for
logic handling the case that 0<write(n)<n, in which it's necessary to back
up and rewrite the missing characters. When n=1, the result of write()
must be one of error (-1), temporary failure (0), and success (1).

I've assumed that most filesystems are block-buffered anyway, and safecat
doesn't call sync() until it's finished writing the entire file. Has
this caused a measurable performance problem in your setting?

I haven't revisited that in some time; if anyone has a comment or insight
please let me know. Otherwise, I'll look into updating safecat Real Soon
Now. It needs one or two minor things anyway.

Thanks,
Len.

PS One of the things safecat needs is to write the "Delivered-To:" and
"Return-Path:" lines when DTLINE and RPLINE are set. If you're using
qmail-pop3d or serialmail, that's a more serious problem for you--which
I plan to fix RSN.

PPS Switching to substdio/stralloc would also eliminate that problem.
I might do that, now that I've decided to stop worrying about Dan's view
of people reusing his code in their projects. As long as I handle any
maintenance costs, I'm assuming Dan doesn't care one way or the other.

--
Security is completely separate from functionality, and no amount of
beta testing can ever uncover a security flaw.
                                        -- Bruce Schneier




On Thu, 24 Feb 2000, Len Budney wrote:

> Curtis Generous <[EMAIL PROTECTED]> wrote:
> > 
> > I'm trying to use safecat on a very busy email server, and noticed
> > while looking at the output of truss(1) that all writes to the file
> > are being done a single character at the time...
> 
> That may be excessively draconian on my part! Back when I wrote safecat,
> I used 1-byte writes when possible, because it eliminated the need for
> logic handling the case that 0<write(n)<n, in which it's necessary to back
> up and rewrite the missing characters. When n=1, the result of write()
> must be one of error (-1), temporary failure (0), and success (1).
> 
> I've assumed that most filesystems are block-buffered anyway, and safecat

They are, however switching to/from kernel mode is extremely expensive.

The reason getc/putc buffer single characters into big chunks, before
calling read/write, is not because some programmer had some free time one
afternoon, and decided to write all those convoluted macros and functions.


--
Sam





Sam <[EMAIL PROTECTED]> wrote:
> On Thu, 24 Feb 2000, Len Budney wrote:
> > I've assumed that most filesystems are block-buffered anyway,
> > and safecat
> 
> They are, however switching to/from kernel mode is extremely expensive.

Yes, but 5-6 orders of magnitude less expensive than physical writes. If
I had incurred, but discounted, physical latencies, I would be a
jackass. Instead I simply made a decision you don't care for, which I
would reverse in the face of actual performance data.

Under my own benchmarks, safecat with buffering is more CPU intensive
than without. However, they have about the similar wall-clock runtime
as each other and as /bin/cat. The best expectable speedup would be a
factor of about 2, not 1,000,000.

In particular, it is extremely unlikely that safecat is the source
of Mr. Generous's performance problems. If actual performance metrics
indicate otherwise, I will happily rewrite the program to accomodate
his needs.

> The reason getc/putc buffer single characters into big chunks, before
> calling read/write, is not because some programmer had some free time
> one afternoon, and decided to write all those convoluted macros and
> functions.

The reason for my idiom, and the reason I don't use those convoluted
macros and functions, is not because I got religion at an anti-libc
tent revival.

The getc/putc macros are, in general, a portability nightmare. Under
HP/UX, for example, they are (were) written so poorly that returns
from a signal handler dropped back inside the macro. Result: your
friends the ``convoluted macros'' degenerated to infinite loops upon
receipt of non-terminal signals.

Question: why didn't the fellow you admire so, who wrote these convoluted
macros, see fit to give proper error information? Why didn't he use errno?
How do I know why putc() fails when it fails?

Len.


--
It's not an opinion. It's a statement of fact. And it's wrong.
                                -- Dan Bernstein




On Thu, 24 Feb 2000, Len Budney wrote:

> Under my own benchmarks, safecat with buffering is more CPU intensive
> than without.  However, they have about the similar wall-clock runtime
> as each other and as /bin/cat. The best expectable speedup would be a
> factor of about 2, not 1,000,000.

$ cat t.c
#include <stdio.h>

int main(int argc, char **argv)
{
char    buf[8192];
int     i;

        memset(buf, 0, sizeof(buf));
        for (i=0; i<sizeof(buf); i++)
                write(1, buf, 1);
        return (0);
}

[mrsam@ny mrsam]$ time ./a.out >/dev/null
Command exited with non-zero status 255
0.00user 0.00system 0:00.14elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (186major+8minor)pagefaults 0swaps

[mrsam@ny mrsam]$ cat t.c
#include <stdio.h>

char    buf[8192];

int main(int argc, char **argv)
{
int     i;
char    *p;

        memset(buf, 0, sizeof(buf));

        p=buf;
        for (i=0; i<sizeof(buf); i++)
                *p++=0;

        write(1, sizeof(buf), 1);
        return (0);
}
[mrsam@ny mrsam]$ time ./a.out >/dev/null
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (76major+11minor)pagefaults 0swaps

Both of these have "similar wall-clock runtime" too.

Still, one version doesn't even register -- executes in less than a clock
tick.  The other one takes at least 1/10th of a second, and more than
twice as many page faults (which are due to the fact that you've
dynamically loaded a large libc, and jumping to kernel is almost always
implemented via a libc stub, which is half an address space away, and
almost always requires a page fault).

Now, multiply that by hundreds of thousands of messages per second.

I think that it's time for a refresher course on Operating Systems 101.

> The getc/putc macros are, in general, a portability nightmare. Under

Only to those who don't know how to use them.

> HP/UX, for example, they are (were) written so poorly that returns
> from a signal handler dropped back inside the macro. Result: your

Anyone who has two brain cells to rub together knows enough not to mix
stdio and signal handling together.  stdio is not guaranteed to work at
all in conjunction with signal handling.  The only functions which are
guaranteed to work with a signal handler are kernel calls.  POSIX does not
require any libc functions to be signal-safe.

> friends the ``convoluted macros'' degenerated to infinite loops upon
> receipt of non-terminal signals.
> 
> Question: why didn't the fellow you admire so, who wrote these convoluted
> macros, see fit to give proper error information? Why didn't he use errno?

They do.

> How do I know why putc() fails when it fails?

Check errno.  Always works for me.

--
Sam





> $ cat t.c
> #include <stdio.h>
> 
> int main(int argc, char **argv)
> {
> char    buf[8192];
> int     i;
> 
>         memset(buf, 0, sizeof(buf));
>         for (i=0; i<sizeof(buf); i++)
>                 write(1, buf, 1);
>         return (0);
> }

So this program is writing the first byte of buf, 8192 times. Let's
call this program an apple.

Did you mean:

        write(1, buf+i, 1) ?


And...

> [mrsam@ny mrsam]$ cat t.c
> #include <stdio.h>
> 
> char    buf[8192];
> 
> int main(int argc, char **argv)
> {
> int     i;
> char    *p;
> 
>         memset(buf, 0, sizeof(buf));
> 
>         p=buf;
>         for (i=0; i<sizeof(buf); i++)
>                 *p++=0;
> 
>         write(1, sizeof(buf), 1);
>         return (0);
> }

(Did you try running this program - the second param
to write should be an address, not a size_t)?

This program is filling buf with binary zeroes twice, then
writing one random byte once. Let's call this program
an orange.

What exactly are you trying to compare here?


Regards.




Sam writes:
> int main(int argc, char **argv)
> {
> char    buf[8192];
...
> }
> 
> [mrsam@ny mrsam]$ time ./a.out >/dev/null
> Command exited with non-zero status 255

If you'll notice, this one bombed, so its timing results are useless.
You probably hit stack overflow with that 8192-byte array.  Of course,
you fixed that in the next one, which ran successfully:

> char    buf[8192];
> 
> int main(int argc, char **argv)

But you didn't go back to fix it in the first one.  If you're trying
to demonstrate the timing effect of one big write versus many small
writes, then let that be the only difference between the two programs.
Write the same data in both programs.  (What you actually did was to
write the same byte many times instead of each byte once.)  No
redundant zeroing, no redundant iterators - unless they're common to
both programs.


paul




On Thu, 24 Feb 2000 [EMAIL PROTECTED] wrote:

> > $ cat t.c
> > #include <stdio.h>
> > 
> > int main(int argc, char **argv)
> > {
> > char    buf[8192];
> > int     i;
> > 
> >         memset(buf, 0, sizeof(buf));
> >         for (i=0; i<sizeof(buf); i++)
> >                 write(1, buf, 1);
> >         return (0);
> > }
> 
> So this program is writing the first byte of buf, 8192 times. Let's
> call this program an apple.
> 
> Did you mean:
> 
>       write(1, buf+i, 1) ?
> 
> 
> And...
> 
> > [mrsam@ny mrsam]$ cat t.c
> > #include <stdio.h>
> > 
> > char    buf[8192];
> > 
> > int main(int argc, char **argv)
> > {
> > int     i;
> > char    *p;
> > 
> >         memset(buf, 0, sizeof(buf));
> > 
> >         p=buf;
> >         for (i=0; i<sizeof(buf); i++)
> >                 *p++=0;
> > 
> >         write(1, sizeof(buf), 1);
> >         return (0);
> > }
> 
> (Did you try running this program - the second param
> to write should be an address, not a size_t)?

Perhaps you haven't noticed the time() output, right there in the middle
of my post.

Yes, I did.  Irrelevant typo -- the only difference would've been a
different address pointer being passed to the kernel.

> This program is filling buf with binary zeroes twice, then
> writing one random byte once. Let's call this program
> an orange.

If you've actually cared enough to examine the putc macros, you would've
observed that's how it works, and this was only an attempt to emulate
putc()'s implementation as closely as possible.

> What exactly are you trying to compare here?

Prove the obvious to people who, for some reason, refuse to accept it.

-- 
Sam





> > > [mrsam@ny mrsam]$ cat t.c
> > > #include <stdio.h>
> > > 
> > > char    buf[8192];
> > > 
> > > int main(int argc, char **argv)
> > > {
> > > int     i;
> > > char    *p;
> > > 
> > >         memset(buf, 0, sizeof(buf));
> > > 
> > >         p=buf;
> > >         for (i=0; i<sizeof(buf); i++)
> > >                 *p++=0;
> > > 
> > >         write(1, sizeof(buf), 1);
> > >         return (0);
> > > }
> > 
> > (Did you try running this program - the second param
> > to write should be an address, not a size_t)?
> 
> Perhaps you haven't noticed the time() output, right there in the middle
> of my post.

I did. It's way too small to indicate anything but noise.

On Solaris an empty program issues some 19 system calls including
2 opens. A write() of 1 byte surely gets lost in the noise.

Here's a truss of your program without any code between main() and the
return.

execve("x", 0x08047474, 0x0804747C)  argc = 1
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 
0xDFBC0000
xstat(2, "x", 0x08047214)                       = 0
sysconfig(_CONFIG_PAGESIZE)                     = 4096
open("/usr/lib/libc.so.1", O_RDONLY)            = 3
fxstat(2, 3, 0x08047068)                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xDFBB0000
mmap(0x00000000, 651264, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xDFB00000
munmap(0xDFB87000, 65536)                       = 0
mmap(0xDFB97000, 22296, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 
552960) = 0xDFB97000
mmap(0xDFB9D000, 4156, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, 
-1, 0) = 0xDFB9D000
close(3)                                        = 0
open("/usr/lib/libdl.so.1", O_RDONLY)           = 3
fxstat(2, 3, 0x08047068)                        = 0
mmap(0xDFBB0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xDFBB0000
close(3)                                        = 0
sysi86(SI86FPHW, 0xDFB9DFD8, 0x08047430, 0xDFBFA000) = 0x00000000
llseek(0, 0, SEEK_CUR)                          = 334465
llseek(0, 0, SEEK_CUR)                          = 334465
_exit(0)


And here's a truss with your code intact. Spot the difference:

execve("x", 0x08047474, 0x0804747C)  argc = 1
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 
0xDFBC0000
xstat(2, "x", 0x08047214)                       = 0
sysconfig(_CONFIG_PAGESIZE)                     = 4096
open("/usr/lib/libc.so.1", O_RDONLY)            = 3
fxstat(2, 3, 0x08047068)                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xDFBB0000
mmap(0x00000000, 651264, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xDFB00000
munmap(0xDFB87000, 65536)                       = 0
mmap(0xDFB97000, 22296, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 
552960) = 0xDFB97000
mmap(0xDFB9D000, 4156, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, 
-1, 0) = 0xDFB9D000
close(3)                                        = 0
open("/usr/lib/libdl.so.1", O_RDONLY)           = 3
fxstat(2, 3, 0x08047068)                        = 0
mmap(0xDFBB0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xDFBB0000
close(3)                                        = 0
sysi86(SI86FPHW, 0xDFB9DFD8, 0x08047430, 0xDFBFA000) = 0x00000000
write(1, "\0", 1)                               = 1
llseek(0, 0, SEEK_CUR)                          = 335418
llseek(0, 0, SEEK_CUR)                          = 335418
_exit(0)


> If you've actually cared enough to examine the putc macros, you would've
> observed that's how it works, and this was only an attempt to emulate
> putc()'s implementation as closely as possible.
> 
> > What exactly are you trying to compare here?
> 
> Prove the obvious to people who, for some reason, refuse to accept it.

Perhaps then you should be sure of what you're measuring...


Regards.





[EMAIL PROTECTED] writes:

> > > > [mrsam@ny mrsam]$ cat t.c
> > > > #include <stdio.h>
> > > > 
> > > > char    buf[8192];
> > > > 
> > > > int main(int argc, char **argv)
> > > > {
> > > > int     i;
> > > > char    *p;
> > > > 
> > > >         memset(buf, 0, sizeof(buf));
> > > > 
> > > >         p=buf;
> > > >         for (i=0; i<sizeof(buf); i++)
> > > >                 *p++=0;
> > > > 
> > > >         write(1, sizeof(buf), 1);
> > > >         return (0);
> > > > }
> > > 
> > > (Did you try running this program - the second param
> > > to write should be an address, not a size_t)?
> > 
> > Perhaps you haven't noticed the time() output, right there in the middle
> > of my post.
> 
> I did. It's way too small to indicate anything but noise.
> 
> On Solaris an empty program issues some 19 system calls including
> 2 opens. A write() of 1 byte surely gets lost in the noise.

There's a saying down there in Washington, DC, that goes something like
this:

"A few million here, a few million there, pretty soon you'll be talking
real money."

After I cleaned up the typos, I averaged .11 seconds in ten sample runs
(versus .14).  For one message, it's nothing.  But when you're pumping
through hundreds of thousands of messages per day, that's nothing to sneeze
at.

It's unfortunate to see that the "wasteful, bloated, inefficient code is
OK, as long as you have a fast CPU" mantra being adopted by anyone else
other than Microsoft.

I recall that the original excuse for this absurd logic was that it's too
gosh darn difficult to properly check the return value from a
multicharacter write() call.

My heart bleeds for you.

-- 
Sam





Sam writes:
> [EMAIL PROTECTED] writes:
> > On Solaris an empty program issues some 19 system calls including
> > 2 opens. A write() of 1 byte surely gets lost in the noise.
> 
> After I cleaned up the typos, I averaged .11 seconds in ten sample runs
> (versus .14).

But with what kind of distribution?  Scale up your tests - many more
writes per run.  Then it'll be clearer that the effects we see are
coming from the writes, and not from constant overhead.


paul




On Fri, Feb 25, 2000 at 01:45:59AM +0000, Sam wrote:
> 
> [EMAIL PROTECTED] writes:
> 

> > > Perhaps you haven't noticed the time() output, right there in the middle
> > > of my post.
> > 
> > I did. It's way too small to indicate anything but noise.
> > 
> > On Solaris an empty program issues some 19 system calls including
> > 2 opens. A write() of 1 byte surely gets lost in the noise.

...

> It's unfortunate to see that the "wasteful, bloated, inefficient code is
> OK, as long as you have a fast CPU" mantra being adopted by anyone else
> other than Microsoft.
> 
> I recall that the original excuse for this absurd logic was that it's too
> gosh darn difficult to properly check the return value from a
> multicharacter write() call.
> 
> My heart bleeds for you.

Why would that be? I never made an opinion one way of the other on the
matter. My point was merely that you should get your methodology in order
before using it to prove a point. Getting your methodology (and your
attributions) wrong does you a disservice.


Regards.





Paul Jarc writes:

> Sam writes:
> > [EMAIL PROTECTED] writes:
> > > On Solaris an empty program issues some 19 system calls including
> > > 2 opens. A write() of 1 byte surely gets lost in the noise.
> > 
> > After I cleaned up the typos, I averaged .11 seconds in ten sample runs
> > (versus .14).
> 
> But with what kind of distribution?  Scale up your tests - many more
> writes per run.  Then it'll be clearer that the effects we see are
> coming from the writes, and not from constant overhead.

The overhead is pretty clear.  The reason that I had the redundant buffer
clear in the "one write" version is so that both benchmarks had the same
setup overhead.

Ok, fine, looks like I have to bury this issue once and for all.  Fine.

[mrsam@ny mrsam]$ cat prog1.c
#include <stdio.h>

#define CNT     1000

int main(int argc, char **argv)
{
int     i, j;
char    *p;
char    buf[BUFSIZ];

        memset(buf, 0, sizeof(buf));

        for (j=0; j<CNT; j++)
        {
                p=buf;
                for (i=0; i<sizeof(buf); i++)
                        *p++=0;

                write(1, buf, sizeof(buf));
        }
        return (0);
}

This should accurately emulate how putc buffers one character at a time,
until it's full, and write()s out the buffer.

My BUFSIZ is 8192 bytes, and that's the size of the stdio buffer.

[mrsam@ny mrsam]$ cat prog2.c
#include <stdio.h>

#define CNT     1000

int main(int argc, char **argv)
{
int     i, j;

        for (j=0; j<CNT; j++)
        {
                for (i=0; i<BUFSIZ; i++)
                        write(1, "", 1);
        }
        return (0);
}

And that, I would think, would accurately emulate the one-character-at-a-
time-because-we're-too-lazy-to-check-the-return-code "logic".

Here's the box:
[root@ny 10remove-sendmail]# uname -a
Linux ny.email-scan.com 2.2.12-20smp #1 SMP Mon Sep 27 10:34:45 EDT 1999
i686 unknown

This is a dual-Pentium box.  Red Hat 6.1 distro+all the latest patches.

Ready for the benchmarks?

[mrsam@ny mrsam]$ time ./prog1 >/dev/null
0.23user 0.00system 0:00.22elapsed 102%CPU (0avgtext+0avgdata
0maxresident)k
0inputs+0outputs (76major+10minor)pagefaults 0swaps

[mrsam@ny mrsam]$ time ./prog2 >/dev/null
3.72user 6.66system 0:10.36elapsed 100%CPU (0avgtext+0avgdata
0maxresident)k
0inputs+0outputs (75major+9minor)pagefaults 0swaps

And just to make sure that we're comparing apples with apples, and that I
did not blow the logic again:

[mrsam@ny mrsam]$ ./prog1 | wc -c
8192000
[mrsam@ny mrsam]$ ./prog2 | wc -c
8192000

Ok now, so to add everything up:

[mrsam@ny mrsam]$ bc
bc 1.05
Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
scale=6
10.36 / .22
47.090909

So, it seems that you pay almost a 50x penalty for the convenience of not
properly checking the return code from write().

Have a nice day.

-- 
Sam





Len Budney <[EMAIL PROTECTED]> writes:

> Yes, but 5-6 orders of magnitude less expensive than physical writes. If
> I had incurred, but discounted, physical latencies, I would be a
> jackass. Instead I simply made a decision you don't care for, which I
> would reverse in the face of actual performance data.

W. Richard Stevens did that benchmark in _Advanced Unix Programming_ quite
a while back; as I recall, the difference between single-character writes
and buffered writes in his data was an order of magnitude or two.

-- 
Russ Allbery ([EMAIL PROTECTED])         <URL:http://www.eyrie.org/~eagle/>




Sam writes:
> The reason that I had the redundant buffer clear in the "one write"
> version is so that both benchmarks had the same setup overhead.

But that's not the way it happens in reality.  The fill-buffer,
single-write way *doesn't* have that overhead, and so neither should
the test version of it.

Note that no one is saying that your results are wrong; it's obvious
that one big write is faster than many small ones.  It's just that
your tests don't look reliable: even if your numbers are accurate, it
seems to have been due in part to chance.

>                 p=buf;
>                 for (i=0; i<sizeof(buf); i++)
>                         *p++=0;

Redundant iterator.  Different from how putc works.  Use something like:
    char* p=buf;
    while (p<buf+sizeof buf) *p++=0;

For a truly honest test, we ought to change the code the way it really
would be changed, which probably means using substdio, and comparing
that to the performance of the actual code as it is now.  I'm not
familiar with substdio, so I've compared single-byte writes to putc
itself (why emulate at all?):
#include <stdio.h>
#include <unistd.h>

static char buf[BUFSIZ];

int main(int argc, char** argv) {
    size_t nloops=2048;
    if (argc>1) {
        setvbuf(stdout, NULL, _IOFBF, BUFSIZ);
        while (nloops--!=0) {
            size_t i;
            for (i=0; i!=sizeof buf; ++i) putc(42, stdout);
        }
    } else {
        while (nloops--!=0) {
            size_t i;
            for (i=0; i!=sizeof buf; ++i) {
                char c=42;
                write(STDOUT_FILENO, &c, 1);
            }
        }
    }
    return 0;
}

With this, compiling with no optimization, I get for putc:
real    0m2.994s
user    0m2.410s
sys     0m0.250s
and for single-byte writes:
real    1m10.151s
user    0m7.080s
sys     0m54.040s
Having them write to existing files or creating new ones doesn't seem
to make much difference.  Filling my own buffer and doing one big
write(), which is probably a more realistic replacement for the code
in question than putc is, was faster than putc by a factor of 3-4.

Of course, by now, we're way OT for this list.


paul




Russ Allbery <[EMAIL PROTECTED]> wrote:
> Len Budney <[EMAIL PROTECTED]> writes:
> 
> > Yes, but 5-6 orders of magnitude less expensive than physical
> > writes. If I had incurred, but discounted, physical latencies, I would
> > be a jackass. Instead I simply made a decision you don't care for,
> > which I would reverse in the face of actual performance data.
> 
> W. Richard Stevens did that benchmark in _Advanced Unix Programming_
> quite a while back; as I recall, the difference between single-character
> writes and buffered writes in his data was an order of magnitude or two.

Sounds believable. I benchmarked safecat using write(,,1) and putc(),
and got a factor of at worst 2 (in wall-clock time). My benchmarks
weren't terribly exhaustive, since they didn't cover a range of
filesystems, and no control was exercised over system load/application
mix.

I'll probably rewrite safecat on general principles anyway, but so far
nobody has reported that it was their bottleneck. Mr. Sam's ``I can't
even emulate putc correctly, and I'm too stupid to simply _use_ putc''
benchmark was pretty underwhelming.

Len.


--
Finally, anti-spam rules are vulnerable to the anti-fax effect: they are
useful only if they aren't very widely used.
                                -- Dan Bernstein




You've been worked over pretty thoroughly already, but anyway...

Sam <[EMAIL PROTECTED]> wrote:
> On Thu, 24 Feb 2000, Len Budney wrote:
> 
> > However, they have about the similar wall-clock runtime as each other
> > and as /bin/cat. The best expectable speedup would be a factor of
> > about 2, not 1,000,000.

[Completely bogus straw-man code snipped]
> Both of these have "similar wall-clock runtime" too.

1. In my benchmark, I ganged 1,390 runs using actual, distinct email
   messages as input. Thus I didn't see 00.00elapsed, and didn't think
   to myself, ``Gee, buffered writes take no time at all!''

2. I benchmarked _safecat_, not some sort of bogus loop which doesn't
   do anything. Why didn't you, since we were talking about safecat?

3. If you're making claims for putc(), why didn't your non-safecat program
   _use_ putc? Why did you need to ``emulate putc()'s implementation
   as closely as possible''? If you really did need to, why were you so
   dismally incapable of it?

> Still, one version doesn't even register -- executes in less than a clock
> tick.

Amazing! You've discovered how to do useful work in zero time!

> Now, multiply that by hundreds of thousands of messages per second.

True; writing 100,000 messages in 0 seconds is mighty fast! You _are_
a guru!

> > HP/UX, for example, they are (were) written so poorly that returns
> > from a signal handler dropped back inside the macro.
> 
> Anyone who has two brain cells to rub together knows enough not to
> mix stdio and signal handling together.  stdio is not guaranteed to
> work at all in conjunction with signal handling.

Thanks for the tip! That might have something to do with why I didn't
use stdio. (``grep sigaction *.c'')

> > How do I know why putc() fails when it fails?
> 
> Check errno.  Always works for me.

This is guaranteed on which platforms? Broken on which? Which standard
requires the use of errno? Why don't the manpages say so? Finally, how
did you verify that it ``always works'' for you?

> I recall that the original excuse for this absurd logic was that it's
> too gosh darn difficult to properly check the return value from a
> multicharacter write() call.

Wrong again. It's true I don't see the point in implementing something
whose need is not established. ``Profile, don't speculate.'' By the way,
try ``man 2 write''. Suggesting I can't handle return codes, when you
can't even supply correct arguments, is hilarious.

Thanks anyway.

Len.


--
There is no dispute that the proposed code fails in exactly the situations
that I said. There are simply religious claims that I shouldn't care
about that type of breakage.
                                -- Dan Bernstein




On Thu, 24 Feb 2000, Len Budney wrote:

> You've been worked over pretty thoroughly already, but anyway...
> 
> Sam <[EMAIL PROTECTED]> wrote:
> > On Thu, 24 Feb 2000, Len Budney wrote:
> > 
> > > However, they have about the similar wall-clock runtime as each other
> > > and as /bin/cat. The best expectable speedup would be a factor of
> > > about 2, not 1,000,000.
> 
> [Completely bogus straw-man code snipped]
> > Both of these have "similar wall-clock runtime" too.
> 
> 1. In my benchmark, I ganged 1,390 runs using actual, distinct email

If you can't be bothered to properly interpret the results of the write()
system call, your proficiency in correctly handling somewhat more complex
tasks is somewhat questionable.

>    messages as input. Thus I didn't see 00.00elapsed, and didn't think
>    to myself, ``Gee, buffered writes take no time at all!''

If that's the conclusion you've drawn, you do need to brush up on OS
design, 101.

> 2. I benchmarked _safecat_, not some sort of bogus loop which doesn't
>    do anything. Why didn't you, since we were talking about safecat?

I do not need to benchmark obviously inefficient code just to prove that
it's inefficient.  Do you need to stick your hand outside the window to
prove that it's raining, when you see it coming down in droves?

> 3. If you're making claims for putc(), why didn't your non-safecat program
>    _use_ putc?

Free clue:  read the putc macro yourself:

#define _IO_putc_unlocked(_ch, _fp) \
   (((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \
    ? __overflow (_fp, (unsigned char) (_ch)) \
    : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))

Any halfbacked compiler will optimize the comparison away, in this loop,
leaving only, drumroll: (*(_fp)->_IO_write_ptr++ = (_ch).

Which is what I had.

Doh...

>                Why did you need to ``emulate putc()'s implementation
>    as closely as possible''? If you really did need to, why were you so
>    dismally incapable of it?

Because, unlike you, I've actually read the headers, and the only thing
I'm "dismally incapable" of is accurately emulating your mistaken notion
of what the actual definition is.

> > Still, one version doesn't even register -- executes in less than a clock
> > tick.
> 
> Amazing! You've discovered how to do useful work in zero time!

Who said that?  Not me.  Since when is a clock tick equal zero time,
professor?  Last time I checked, a clock tick is 1/100th of a second.
Only in your mind is <.01 secodns must always equal to 0 seconds.

[ drivelectomy ]


> > > How do I know why putc() fails when it fails?
> > 
> > Check errno.  Always works for me.
> 
> This is guaranteed on which platforms?

POSIX-compliant ones.









Sam writes:
> On Thu, 24 Feb 2000, Len Budney wrote:
> > 1. In my benchmark, I ganged 1,390 runs using actual, distinct email
> 
> If you can't be bothered to properly interpret the results of the write()
> system call,

He *is* properly interpreting the results.  He's just making the
interpretation easier by restricting the set of possible results.

> > 3. If you're making claims for putc(), why didn't your non-safecat program
> >    _use_ putc?
> 
> Free clue:  read the putc macro yourself:

Sorry, no.  You're not looking at *the* putc macro; you're looking at
*a* putc macro.  One implementation need not resemble another at all
except insofar as they both exhibit certain externally visible
behavior.  It doesn't even have to be a macro.

> >                Why did you need to ``emulate putc()'s implementation
> >    as closely as possible''? If you really did need to, why were you so
> >    dismally incapable of it?
> 
> Because, unlike you, I've actually read the headers,

No.  You haven't read *the* headers.  You've read *your* headers.
Anything you read in headers is not portable.  Don't expect it to
apply to any other kind of system.  Don't expect it to come into
consideration when dealing with portable software.

Even having read your headers, you aren't at all constrained to
emulate putc.  If you really want an accurate picture of putc, use
putc itself, rather than guessing, correctly or not, at how a compiler
might optimize it.

> Last time I checked, a clock tick is 1/100th of a second.

This is also nonportable, and it's not even true on your own system.
Obviously, you've never checked at all.
#include <stdio.h>
#include <time.h>
int main(void) {
    printf("%f\n", (double)CLOCKS_PER_SEC);
    return 0;
}
Or did you mean hardware clock ticks?  Does your processor run at
100Hz (that's Hz, not MHz)?  I thought not.

> > > > How do I know why putc() fails when it fails?
> > > 
> > > Check errno.  Always works for me.
> > 
> > This is guaranteed on which platforms?
> 
> POSIX-compliant ones.

This is just a misunderstanding, I think: I believe the failure Len
was referring to is the failure resulting from a signal, which you
agreed would have bad effects on stdio.


paul




On Fri, 25 Feb 2000, Paul Jarc wrote:

> > > 3. If you're making claims for putc(), why didn't your non-safecat program
> > >    _use_ putc?
> > 
> > Free clue:  read the putc macro yourself:
> 
> Sorry, no.  You're not looking at *the* putc macro; you're looking at
> *a* putc macro.  One implementation need not resemble another at all

However, since I'm using *MY* implementation, I'm going to look at *MY*
macros, thankyouverymuch.  Although Linux has now been ported to the S/390
Big Iron, looking at Big Blue's putc() macro is not going to be a very
productive experience, when I'm benchmarking code that runs on my system.

> except insofar as they both exhibit certain externally visible
> behavior.  It doesn't even have to be a macro.

No, but nobody should waste their time on anything that these days doesn't
use a macro for putc(), unless they're dealing with thread-safe code.

> 
> > >                Why did you need to ``emulate putc()'s implementation
> > >    as closely as possible''? If you really did need to, why were you so
> > >    dismally incapable of it?
> > 
> > Because, unlike you, I've actually read the headers,
> 
> No.  You haven't read *the* headers.  You've read *your* headers.

And since I'm going to benchmark *MY* system, that's the headers I'm going
to read.  That's just the way the world spins.

> Even having read your headers, you aren't at all constrained to
> emulate putc.  If you really want an accurate picture of putc, use
> putc itself, rather than guessing, correctly or not, at how a compiler
> might optimize it.

If it could've made a fig of a difference, I would've.  But it doesn't, so
I didn't.  Simple logic.

I wonder how many times I have to report the same results (twice
apparently isn't enough) before everyone finds something else to do,
besides splitting hairs.


> > Last time I checked, a clock tick is 1/100th of a second.
> 
> This is also nonportable, and it's not even true on your own system.

Once again, I hate to confuse people with facts, but that's the clock tick
over here, and, since I've displayed the time measurement on my system,
I'm afraid that there's no choice but to use that.

> Obviously, you've never checked at all.
> #include <stdio.h>
> #include <time.h>
> int main(void) {
>     printf("%f\n", (double)CLOCKS_PER_SEC);
>     return 0;
> }
> Or did you mean hardware clock ticks?  Does your processor run at
> 100Hz (that's Hz, not MHz)?  I thought not.

Review the contents of /usr/src/linux, then get back to me.  In
kernel-speak, a "clock tick", is the basic timeslice.  Ever tried to
repeatedly strace a process in a middle of a timer-limited select() call?

[root@ny root]# strace -p 2679
select(1, [0], NULL, NULL, {587, 770000} <unfinished ...>
[root@ny root]# strace -p 2679
select(1, [0], NULL, NULL, {583, 140000} <unfinished ...>
[root@ny root]# strace -p 2679
select(1, [0], NULL, NULL, {581, 750000} <unfinished ...>
[root@ny root]# strace -p 2679
select(1, [0], NULL, NULL, {580, 210000} <unfinished ...>
[root@ny root]# strace -p 2679
select(1, [0], NULL, NULL, {578, 770000} <unfinished ...>

Note that although tv_usec is in milliseconds, the kernel decrements the
timer in 1/100 second intervals.

You will find that to be the case no matter what your CPU speed is, or
what your system clock frequency is.  And that's what we call a "clock
tick".




--
Sam





On Thu, Feb 24, 2000 at 06:48:50PM -0800, Russ Allbery wrote:
 
> W. Richard Stevens did that benchmark in _Advanced Unix Programming_ quite
> a while back; as I recall, the difference between single-character writes
> and buffered writes in his data was an order of magnitude or two.

of course. 

lrz, buffered file write: (fwrite)
Bytes received:  335868/ 335868   BPS:3251764
Bytes received:  346199/ 346199   BPS:2601924

lrz, buffered file write: (putc)
Bytes received:  336079/ 336079   BPS:2837811
Bytes received:  346199/ 346199   BPS:2247884

lrz, unbuffered file write: (write, single bytes)
Bytes received:  335936/ 335936   BPS:87863
Bytes received:  346199/ 346199   BPS:87847

Using unbuffered I/O where one can use buffered I/O wastes performance,
due to context switch slowness.

Regards, Uwe




   I'm new to qmail so I guess I'll put some stupid question but please help 
me... I put qmail last days on one of my servers and I make the test from 
mail-abuse.org...

What I have to do to pass the test ?

I have got the folowing output at relay test6:

Relay test 6
            RSET



<<< 250 flushed
            MAIL FROM:<[EMAIL PROTECTED]>



<<< 250 ok
            RCPT TO:<[EMAIL PROTECTED]>



<<< 250 ok
Relay test result
Uh oh, host appeared to accept a message for relay.
The host may reject this message internally, however
Connection closed by foreign host.


Thanks



______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com





"Bufnea Darius" <[EMAIL PROTECTED]> wrote:

>   I'm new to qmail so I guess I'll put some stupid question but please help 
>me... I put qmail last days on one of my servers and I make the test from 
>mail-abuse.org...
>
>What I have to do to pass the test ?

The test is broken. See:

  http://www.faqts.com/knowledge-base/view.phtml/aid/1198/fid/206/lang/en

-Dave




In article <[EMAIL PROTECTED]> you write:
>   I'm new to qmail so I guess I'll put some stupid question but please help 
>me... I put qmail last days on one of my servers and I make the test from 
>mail-abuse.org...
>
>What I have to do to pass the test ?

><<< 250 ok
>            RCPT TO:<[EMAIL PROTECTED]>

Nothing.  If you get that far with your qmail setup, it's OK.

Someday I'll fiddle the test to notice what MTA it's testing and skip the
ones likely to give false alarms.

Regards,
John Levine, [EMAIL PROTECTED], http://www.abuse.net, Trumansburg NY
abuse.net postmaster




On Feb 24 2000, John R Levine wrote:
> Someday I'll fiddle the test to notice what MTA it's testing and
> skip the ones likely to give false alarms.

        But a qmail book would be nicer (hint, hint)... :-)


        []s, Roger...

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rogerio Brito - [EMAIL PROTECTED] - http://www.ime.usp.br/~rbrito/
     Nectar homepage: http://www.linux.ime.usp.br/~rbrito/opeth/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Hear hear!

Andy


> -----Original Message-----
> From: Rogerio Brito [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 24, 2000 4:05 PM
> To: [EMAIL PROTECTED]
> Subject: Re: mail-abuse.org test fail at step 6
> 
> 
> On Feb 24 2000, John R Levine wrote:
> > Someday I'll fiddle the test to notice what MTA it's testing and
> > skip the ones likely to give false alarms.
> 
>       But a qmail book would be nicer (hint, hint)... :-)
> 
> 
>       []s, Roger...
> 
> -- 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>   Rogerio Brito - [EMAIL PROTECTED] - http://www.ime.usp.br/~rbrito/
>      Nectar homepage: http://www.linux.ime.usp.br/~rbrito/opeth/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> 




Bruce Guenter <[EMAIL PROTECTED]> wrote:
> On Wed, Feb 09, 2000 at 12:02:17PM +0800, Michael Boman wrote:
>> Wouldn't it great if there was a list of big/famous sites that uses qmail
>> as their MTA?

> I just compiled a list of these from searching through the qmail mailing
> list archives:

> OneList
> Yahoo
> egroups
> InterNIC
> RIPE (European research organiziation, I believe)
> xoom.com (heavily modified)
> USA.net
> MatchLogic
> Algonet (Sweedish ISP with 50,000+ users)
> gmx.de (German ISP)
> NetZero
> Critical Path
> -- 
> Bruce Guenter <[EMAIL PROTECTED]>                       http://em.ca/~bruceg/

-- 
Email pgregg at tibus.net  |  T: +44 (0)  1232 424190  |  CLUB24  INTERNET  | 
Technical Director         |  F: +44 (0)  1232 424709  |    Free  Access    | 
The Internet Business Ltd  |  W: http://www.tibus.net  |  www.club24.co.uk  | 




configured and installed my qmail as it is recomended in
"Life with qmail", but when I'm starting qmail:

# /usr/local/sbin/qmail start

bash reports:

bash: /usr/local/sbin/qmail: No such file or directory

The same problem when I'm starting linux:

/etc/init.d/rc:   /etc/rc2.d/S20qmail: No such file or directory

and shuting down:

/etc/init.d/rc:   /etc/rc6.d/K20qmail: No such file or directory

Maybe I need to edit my profile file?
Thank you in advance.

Stating the Obvious.  All meta, all the time.  <http://www.theobvious.com/>
___________________________________________________________
Get your own Web-Based E-mail Service at http://www.zzn.com




[EMAIL PROTECTED] wrote:

>configured and installed my qmail as it is recomended in
>"Life with qmail", but when I'm starting qmail:
>
># /usr/local/sbin/qmail start
>
>bash reports:
>
>bash: /usr/local/sbin/qmail: No such file or directory

>From http://www.faqts.com/knowledge-base/view.phtml/aid/1200/fid/223/lang/

Check the "magic number" (the first line of the script):

head -1 /usr/local/sbin/qmail | od -c

You should see:

0000000   #   !   /   b   i   n   /   s   h  \n
0000012

If you see something that ends with "\r  \n", then the file is in DOS
format, and you can fix it by doing:

tr -d '\012' </usr/local/sbin/qmail >/tmp/foo
cp /tmp/foo /usr/local/sbin/qmail

-Dave




thank you very much - it
worked :-0 :-)


---- Begin Original Message ----
 From: Dave Sill <[EMAIL PROTECTED]>
Sent: Thu, 24 Feb 2000 13:36:03 -0500 (EST)
To: [EMAIL PROTECTED]
Subject: Re: bash: /usr/local/sbin/qmail: No such file or directory

[EMAIL PROTECTED] wrote:

>configured and installed my qmail as it is recomended in
>"Life with qmail", but when I'm starting qmail:
>
># /usr/local/sbin/qmail start
>
>bash reports:
>
>bash: /usr/local/sbin/qmail: No such file or directory

>From http://www.faqts.com/knowledge-base/view.phtml/aid/1200/fid/223/lang/

Check the "magic number" (the first line of the script):

head -1 /usr/local/sbin/qmail | od -c

You should see:

0000000 � # � ! � / � b � i � n � / � s � h �\n
0000012

If you see something that ends with "\r �\n", then the file is in DOS
format, and you can fix it by doing:

tr -d '\012' </usr/local/sbin/qmail >/tmp/foo
cp /tmp/foo /usr/local/sbin/qmail

-Dave

---- End Original Message ----


Stating the Obvious.  All meta, all the time.  <http://www.theobvious.com/>
___________________________________________________________
Get your own Web-Based E-mail Service at http://www.zzn.com




On Wed, 23 Feb 2000 11:15:41 -0800, Micah Cowan wrote:

>instantaneous delivery - at least within our own company!  I'm trying to aim
>for 1- or 2-minute delays at most (since that's what is configured as their
>mailbox-checking interval in their Outlooks).

[see previous msg for answer]

IMHO, 1-2 min interval is way to often. Even with rapid fire
communication, 5 min is plenty. Assume 6000 users, 1 min interval gets
you 100 pop3 connections/fork/authentications/fork/chdir/... per second
without really doing anything. Putting the interval at 5 min will
enable your server to support almost 5x as many users before it bottoms
out.


-Sincerely, Fred

(Frederik Lindberg, Infectious Diseases, WashU, St. Louis, MO, USA)






I did read the web page, but I don't understand if the packet itself has to
end with a \r\n ... what if the next packet actually has the \r\n in it, but
qmail didn't read it because it already sent the error message?

If you've telnetted to port 25 and are typing in commands directly, each
character gets it's own packet, so qmail-smtpd must be listening for \r\n to
find things to act on, yes? So, why does this packet give qmail problems?

-ben

on 2/23/00 4:41 PM, Adam McKenna at [EMAIL PROTECTED] wrote:

> If you read the "blah, blah", and go to the website mentioned, you will find
> out exactly what the problem is.
> 
> --Adam
> 
> On Wed, Feb 23, 2000 at 03:41:00PM -0800, Ben Houston wrote:
>> I used snoop on Solaris to capture the packets on port 25... The first
>> exchange seems fine, I see a DATA command, qmail says "354 go ahead". Then
>> there's a packet whose data ends with \r\n from the client, empty response
>> from server, then there's a packet with this in it:
>> 
>> "X-EM-Version: 4, 5, 0, 6\r\nX-EM-Registration: #3113420714600B"
>> 
>> Immediately following this packet is the 451 See blah blah... response from
>> the server.
>> 
>> Does this seem right? Does that packet need to end with \r\n? Should the
>> \r\n in the middle of the line not be followed with more information? It
>> doesn't seem like it should matter (especially since we're in the DATA part,
>> and smtp shouldn't be taking commands...)
>> 
>> -ben
>> 
>> 
>> on 2/23/00 1:18 AM, Anand Buddhdev at [EMAIL PROTECTED] wrote:
>> 
>>> On Tue, Feb 22, 2000 at 05:06:00PM -0800, Ben Houston wrote:
>>> 
>>>> I think there's a problem with the software he's using... could it be the
>>>> Bare LF problem? I know I haven't been able to supply much information
>>>> here,
>>>> but that's because I can't seem to find log entries (apparently qmail-smtpd
>>>> doesn't have any), and I'm not sure how to continue. Any similar
>>>> experiences
>>>> or suggestions for a course of action? Thanks for your help...
>>> 
>>> You can use recordio from the ucspi-tcp package to record the entire
>>> conversation from that database application. Then you'll know if it's a
>>> bare LF problem or something else.
>> 
> 





Hello,

I have qmail running on a SUN solaris 2.6 sparc U450.

No problem, it starts fine, etc...

If there is a problem in the startup script (I don't use supervise and
please I know it may be good to use but that's irrelevant for my problem)
and qmail does not start or gets kill for some reason, then if I login su
and start the script manually (i.e. scriptqmail start) qmail does start but
if I logout puff! qmail exits.

The scripts uses:

csh -cf '/var/qmail/rc &'

the faq mentions that if upon rebooting qmail exits to use the NOHUP to
start it (although this is if you run supervise). It does not exits upon
rebooting either

Any ideas?

Miguel.




Miguel Sarmiento writes:
> If [...] qmail does not start or gets kill for some reason, then if
> I login su and start the script manually (i.e. scriptqmail start)
> qmail does start but if I logout puff! qmail exits.
...
> the faq mentions that if upon rebooting qmail exits to use the NOHUP to
> start it (although this is if you run supervise).

That note applies regardless of whether you use supervise, I think.
It certainly sounds like nohup may solve your problem.  Have you tried
it?  Use this in your startup script: nohup /var/qmail/rc &


paul




I am trying to set up qmail-smtpd so that it requires a password. This is
supported by many e-mail clients.

I have already successfully setup tcprules so that only specific IPs are
allowed in, but I would rather have it let any IP in and be password based
so that when I travel I can use my own smtp server wherever I am.

I would also like to log all traffic through qmail-smtpd preferably in a
standard Mailbox format. I have successfully setup recordio to log through
splogger, but I would rather have it Bcc: to log@domain

Any help would be greatly appreciated.

Daniel Zen






>I am trying to set up qmail-smtpd so that it requires a password. This is
>supported by many e-mail clients.
>
>I have already successfully setup tcprules so that only specific IPs are
>allowed in, but I would rather have it let any IP in and be password based
>so that when I travel I can use my own smtp server wherever I am.

Check out my qmail-smtpd-auth patches. They will do exactly what you want.

http://www.elysium.pl/members/brush/qmail-smtpd-auth/

Kris





Hello,

today when I rebooted my computer for the first time since I had added a 
virtualdomain on my qmail-machine, it didn't work. It wanted to transport 
the mail's that should, and had been before the reboot, be handled locally 
away to a remote server. So I began looking into the thing, and I noticed 
my control file for virtualdomains was named virtualdomain, how could it be 
that it has worked with this name? So I renamed it to virtualdomains, and 
added teddybear.cx in it, which is my virtualdomain anyway. Still didn't 
work. So i removed it, created a new file, added teddybear.cx in it, now it 
worked. How is this? Anyway, a few hours later, I restarted qmail, and now 
again it doesn't work... I have no clue whatsoever what can be the faulty 
thing here... Anyone got any suggestions?

The system I am running is Linux Slackware 7.0, and no patches in qmail.
itsec.nu is the main domainname for my server to handle, and teddybear.cx 
is my virtualdomain. I run the nameserver myself.
Mikael Schmidt  <[EMAIL PROTECTED]>  http://teddybear.cx/
http://www.itsec.nu/              "When you dream, there are no rules....
Certified Linux Administrator      People can fly, anything can happen..."
watata tuoijombade dikombe                             - Astral Projection





Hi,

I'm new to qmail and I want to use it for virtual domain mailing on a host
who has an IP address per domain (doing accounting per IP address):

Example: Host serves
DomainA on IpA (MX entry in DNS)
DomainB on IpB (MX entry in DNS)

Local bind for outgoing e-mail depending on sender domain
Unlike http://qmail.mirrors.Space.Net/local-bind do that for receipent domain

i.e.

a client of DomainA has already send an e-mail to the virtual SMTP host.
Now this e-mail is send out somewhere to the Internet.
        qmail-remote should bind IpA to send this e-mail
                IpA given by table or taken from DNS/MX resolving


Thank you very much for help,
        Peter





Hi, hope that is the right list for that, if not, please hit me not to
strong :-)

perhaps someone need it for virtual SMTP hosting on one machine.

If applied, the greeting hostname will be changed to the name of the
connected local IP address


virtual-greeting-patch.diff

--- qmail-smtpd.c.orig  Mon Jun 15 12:53:16 1998
+++ qmail-smtpd.c       Wed Feb 23 21:46:39 2000
@@ -59,13 +59,18 @@
 void err_vrfy() { out("252 send some mail, i'll try my best\r\n"); }
 void err_qqt() { out("451 qqt failure (#4.3.0)\r\n"); }

+char *remoteip;
+char *remotehost;
+char *remoteinfo;
+char *local;
+char *relayclient;

 stralloc greeting = {0};

 void smtp_greet(code) char *code;
 {
   substdio_puts(&ssout,code);
-  substdio_put(&ssout,greeting.s,greeting.len);
+  substdio_put(&ssout,local, strlen(local));
 }
 void smtp_help()
 {
@@ -75,12 +80,6 @@
 {
   smtp_greet("221 "); out("\r\n"); flush(); _exit(0);
 }
-
-char *remoteip;
-char *remotehost;
-char *remoteinfo;
-char *local;
-char *relayclient;

 stralloc helohost = {0};
 char *fakehelo; /* pointer into helohost, or 0 */




HELO

I have a kinda odd situation (I know so does everybody else)

I have smtp and pop3 working fine from a workstation that is accessing
the email server thru a MASQ'd firewall connection.

The install is standard LWQ using tcpserver for everything including
qmail-pop3d - which seems to work just fine.

I can send a message to my own user and recieve it back with netscape
just fine.

But if I try to send a message to anyone outside my local domain I get
the dreaded:

sorry, that domain isn't in my list of allowed rcpthosts

If I put the destination domain in my rcpthosts it accepts and
processes the email just fine.

It would appear that qmail does not recognize that my request is coming
from a local domain - since I am MASQ'd I have my MASQ server listed in
the /etc/tcp.smtp(?) file for tcpserver with the proper env setting to
bypass rcpthosts....

The odd thing is that I do not have a DNS entry for this server yet so
I am using the IP of the server to send to it from outside with entries
in the locals file for that address - which seems to work OK.

What should I look at ?

Thanks 
Kevin Kling
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com




Michael Boman wrote:

> Problem with the solution:
> How the heck can I in a email see if I need to display it as english,
> chinese or japanise text?


This question has ZERO to do with the operation of the MTA (beyond
if it is passing 8-bit unicodes cleanly or suchlike.)

I'd ask comp.lang.perl.misc, assuming you're going to be doing this
parsing using Perl.


___________________________________________________________________
                           David Nicol 816.235.1187 [EMAIL PROTECTED]




just wanting to verify...

when the EXT environmental variable is set, that corresponds to
the 'user-whatever' part of '[EMAIL PROTECTED]',  is that
correct?

tia!
jacob 




On Thu, Feb 24, 2000 at 04:18:05PM -0600, [EMAIL PROTECTED] wrote:
> just wanting to verify...
> 
> when the EXT environmental variable is set, that corresponds to
> the 'user-whatever' part of '[EMAIL PROTECTED]',  is that
> correct?

No. It corresponds to the 'whatever-1-2-3-4-n' part of the
'[EMAIL PROTECTED]'.

It's LOCAL that corresponds to 'user-whatever-1-2-3-4-n'.

/magnus

-- 
http://x42.com/




Thanks for those who replied to my last email, I got it working.
 
Before I fire up qmail and replace sendmail (ew, sendmail sucks so I want to rid my life of it) I have a few more questions.
 
1) We have several domains which have addresses I would like to be forwarded to more than one local user (mail sent to [EMAIL PROTECTED] is sent to local user jblow and tom). I have seen in the FAQ how you can forward it to one person (nowhere.mil:bob), can I just add a comma and add the other local user to the list (nowhere.mil:bob,joe,etc)?
 
2) How can I tell qmail to allow relaying from certain domains (otherdomain.com, qmailrules.com, etc)?
 
3) We also have an alias for root going to several local users. How do I tell qmail to forward it to several people, and not just one (It looks like I have to setup a mailing list to do this, is there a better/quicker way I am overlooking)?
 
Thanks for answering my questions...
 
        Sincerely,
            Jon Newman
 
--------------------------------------------------------
Jon Newman ([EMAIL PROTECTED])
Systems Admin./Software Engineer
The Optimal Link Inc.
--------------------------------------------------------




On Thu, Feb 24, 2000 at 05:18:18PM -0800, Jon Newman wrote:
> Thanks for those who replied to my last email, I got it working.
> 
> Before I fire up qmail and replace sendmail (ew, sendmail sucks so I want to rid my 
>life of it) I have a few more questions.
> 
> 1) We have several domains which have addresses I would like to be forwarded to more 
>than one local user (mail sent to [EMAIL PROTECTED] is sent to local user jblow and 
>tom). I have seen in the FAQ how you can forward it to one person (nowhere.mil:bob), 
>can I just add a comma and add the other local user to the list 
>(nowhere.mil:bob,joe,etc)?

No, instead, do nowhere.mil:alias-nowhere, and create ~alias/.qmail-nowhere
containing the addresses (in the form '&user@domain'), one per line.

> 2) How can I tell qmail to allow relaying from certain domains (otherdomain.com, 
>qmailrules.com, etc)?

Either per subnet (from tcpserver), or based on rcpthosts (man qmail-smtpd).

> 3) We also have an alias for root going to several local users. How do I tell qmail 
>to forward it to several people, and not just one (It looks like I have to setup a 
>mailing list to do this, is there a better/quicker way I am overlooking)?

Just put the forwards one per line in the .qmail file.

Greetz, Peter.
-- 
Peter van Dijk - student/sysadmin/ircoper/madly in love/pretending coder 
|  
| 'C makes it easy to shoot yourself in the foot;
|  C++ makes it harder, but when you do it blows your whole leg off.'
|                             Bjarne Stroustrup, Inventor of C++




http://news.cnet.com/news/0-1005-200-1556935.html?tag=st.ne.1002.bgif.1005-200-1556935

Hmm. Does http://cr.yp.to/crypto.html need updating :>


Regards.






Hi,
I have in ~alias/.qmail-default lines

| fastforward -d /etc/aliases.cdb
me@mydomain

but it doesn't catch all mail such as nonexist@localhost. I want to catch,
because I'm afraid that somebody can do something like this:
telnet mydomain 25
helo xy
mail from: goodguy@somewhere
rcpt to: nonexist@mydomain

it happily bounces to this goodguy, maybe it is begginer question, but i
don't know how to stop this.

Dusan






I am trying to test qmail thouroughly before I start it up but when I try and transfer email through it (relaying through it), I get this error:
 
The message could not be sent because one of the recipients was rejected by the server. The rejected e-mail address was '[EMAIL PROTECTED]'. Subject 'test', Account: 'xxx.xxxxxx.net', Server: 'xxxx.xxxxx.net', Protocol: SMTP, Server Response: '553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)', Port: 25, Secure(SSL): No, Server Error: 553, Error Number: 0x800CCC79
 
Anyone know what is going on? Thanks.
 
 
            -Jon.




On Thu, Feb 24, 2000 at 09:12:39PM -0800, Jon Newman wrote:
> I am trying to test qmail thouroughly before I start it up but when I try and 
>transfer email through it (relaying through it), I get this error:
> 
> The message could not be sent because one of the recipients was rejected by the 
>server. The rejected e-mail address was '[EMAIL PROTECTED]'. Subject 'test', 
>Account: 'xxx.xxxxxx.net', Server: 'xxxx.xxxxx.net', Protocol: SMTP, Server Response: 
>'553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)', Port: 25, 
>Secure(SSL): No, Server Error: 553, Error Number: 0x800CCC79
> 
> Anyone know what is going on? Thanks.

Yep. What you need to do is to put yyyyyyyy.com into the xxxxxxx file in the directory 
zzzzzzz.

Then you might have to aaaaaaa before doing the bbbbbbbb and making it with ccccccc, 
but after that
you should be fine.

>             -Jon.

                -Zzzz.




This is very normal operation - by default qmail installs without the
ability to relay through it.

Visit http://www.palomine.net/qmail/relaying.html on
instructions/information how to allow selective relaying through your
server.

Cheers,
Stephen


-----Original Message-----
From: Jon Newman [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 25, 2000 4:13 PM
To: [EMAIL PROTECTED]
Subject: Strange error


I am trying to test qmail thouroughly before I start it up but when I try
and transfer email through it (relaying through it), I get this error:
 
The message could not be sent because one of the recipients was rejected by
the server. The rejected e-mail address was '[EMAIL PROTECTED]'. Subject
'test', Account: 'xxx.xxxxxx.net', Server: 'xxxx.xxxxx.net', Protocol: SMTP,
Server Response: '553 sorry, that domain isn't in my list of allowed
rcpthosts (#5.7.1)', Port: 25, Secure(SSL): No, Server Error: 553, Error
Number: 0x800CCC79

Anyone know what is going on? Thanks.


            -Jon.




Is there any way to specify the domains a user is allowed to come from and
to have qmail lookup the addresses to ensure they are telling the truth
about where they are comming from? Like sendmail does it?

Jon.

----- Original Message -----
From: Stephen Mills <[EMAIL PROTECTED]>
To: 'Jon Newman' <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, February 24, 2000 7:04 PM
Subject: RE: Strange error


> This is very normal operation - by default qmail installs without the
> ability to relay through it.
>
> Visit http://www.palomine.net/qmail/relaying.html on
> instructions/information how to allow selective relaying through your
> server.
>
> Cheers,
> Stephen
>
>
> -----Original Message-----
> From: Jon Newman [mailto:[EMAIL PROTECTED]]
> Sent: Friday, February 25, 2000 4:13 PM
> To: [EMAIL PROTECTED]
> Subject: Strange error
>
>
> I am trying to test qmail thouroughly before I start it up but when I try
> and transfer email through it (relaying through it), I get this error:
>
> The message could not be sent because one of the recipients was rejected
by
> the server. The rejected e-mail address was '[EMAIL PROTECTED]'. Subject
> 'test', Account: 'xxx.xxxxxx.net', Server: 'xxxx.xxxxx.net', Protocol:
SMTP,
> Server Response: '553 sorry, that domain isn't in my list of allowed
> rcpthosts (#5.7.1)', Port: 25, Secure(SSL): No, Server Error: 553, Error
> Number: 0x800CCC79
>
> Anyone know what is going on? Thanks.
>
>
>             -Jon.
>





I believe this is possible (never done it) but its unsecure, anyone can fake
a domain name..
Goto the qmail website for links to such a patch.....(I think one is there)
Your much better off using IP addresses.

--Stephen

-----Original Message-----
From: Jon Newman [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 25, 2000 4:34 PM
To: Stephen Mills
Cc: [EMAIL PROTECTED]
Subject: Re: Strange error


Is there any way to specify the domains a user is allowed to come from and
to have qmail lookup the addresses to ensure they are telling the truth
about where they are comming from? Like sendmail does it?

Jon.

----- Original Message -----
From: Stephen Mills <[EMAIL PROTECTED]>
To: 'Jon Newman' <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, February 24, 2000 7:04 PM
Subject: RE: Strange error


> This is very normal operation - by default qmail installs without the
> ability to relay through it.
>
> Visit http://www.palomine.net/qmail/relaying.html on
> instructions/information how to allow selective relaying through your
> server.
>
> Cheers,
> Stephen
>
>
> -----Original Message-----
> From: Jon Newman [mailto:[EMAIL PROTECTED]]
> Sent: Friday, February 25, 2000 4:13 PM
> To: [EMAIL PROTECTED]
> Subject: Strange error
>
>
> I am trying to test qmail thouroughly before I start it up but when I try
> and transfer email through it (relaying through it), I get this error:
>
> The message could not be sent because one of the recipients was rejected
by
> the server. The rejected e-mail address was '[EMAIL PROTECTED]'. Subject
> 'test', Account: 'xxx.xxxxxx.net', Server: 'xxxx.xxxxx.net', Protocol:
SMTP,
> Server Response: '553 sorry, that domain isn't in my list of allowed
> rcpthosts (#5.7.1)', Port: 25, Secure(SSL): No, Server Error: 553, Error
> Number: 0x800CCC79
>
> Anyone know what is going on? Thanks.
>
>
>             -Jon.
>





OK.  I downloaded and installed qmail, ucspi-tcp and daemontools.  I've read
through about 70% of the documentation, and search the web for tips and
help.  qmail appears to be running, and it appears to be queuing messages
but it won't deliver them.  I've tried to figure it out, but I'm stuck.  I
appreciate that people with normal intelligence can figure this out, but I
just can't seem to, and I was supposed to have this done a week ago, and I
have a lot of other things that I'm supposed to be doing, and this is my
third week on the job and etc. etc. etc.

I wanted to use tcpserver, but I'm having trouble understanding how to use
it.  I can't figure out how to generate smtprules.cdb.  I can't seem to find
the smtprules(5) man page... We have another machine here that is running
qmail and is working happily, but qmail is not setup on that machine
anything like the way it says to set it up in the docs I've read (it was
setup by the unix guy before me).  This machine is supposed to forward
messages that come in to host xxxxx.net as [EMAIL PROTECTED] and send them
on to his AOL account or whatever, using a big aliases file.  I installed
fastforward, and was able to get the newaliases to run after I cleaned out
some badly formed addresses.  I've tried sending mail to a test address in
the aliases file that looks like:

zzz123: [EMAIL PROTECTED]

...but it doesn't deliver the message.  I can see the messages in the queue,
but they just sit there.  I've also tried just sending mail to
root@localhost and rholder@localhost, but they just get added to the queue,
and don't get delivered.

i can telnet to port 25, send mail that way, but it just goes in the queue.
I'm guessing that qmail-send isn't configured right, or smtprules.cdb (which
i don't have) is causing the problem or... ugh... i'm just overwhelmed.  i'm
sure that i've just made some dumb mistakes, but my boss will be back
tomorrow and... you know the rest.

If anybody out there would take pity on a poor dumb unix guy who's just
trying to pay off his credit cards, I would be SOOOOOO grateful!!!  :)  Any
help at all would be appreciated!

Robert Holder

Here is some info:

[root@xxxxxmail init.d]# cat /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
192.168.6.:allow,RELAYCLIENT=""
:allow
[root@xxxxxmail init.d]# cd /etc/rc.d/init.d
[root@xxxxxmail init.d]# ./qmail restart
Restarting qmail:
* Stopping qmail-smtpd.
* Sending qmail-send SIGTERM and restarting.
* Restarting qmail-smtpd.
[root@xxxxxmail init.d]# qmail-qstat
messages in queue: 8
messages in queue but not yet preprocessed: 0
[root@xxxxxmail init.d]# ps -ef | grep qmail
root      8761  8760  0 19:38 pts/1    00:00:00 supervise qmail-send
root      8763  8760  0 19:38 pts/1    00:00:00 supervise qmail-smtpd
qmaill    8766  8764  0 19:38 pts/1    00:00:00 /usr/local/bin/multilog t
/var/l
qmaill    8768  8762  0 19:38 pts/1    00:00:00 /usr/local/bin/multilog t
/var/l
qmails    9581  8761  0 19:41 pts/1    00:00:00 qmail-send
qmaill    9584  9581  0 19:41 pts/1    00:00:00 splogger qmail
root      9585  9581  0 19:41 pts/1    00:00:00 qmail-lspawn |dot-forward
.forwa
qmailr    9586  9581  0 19:41 pts/1    00:00:00 qmail-rspawn
qmailq    9587  9581  0 19:41 pts/1    00:00:00 qmail-clean
root      9706  3816  0 19:42 pts/1    00:00:00 grep qmail


[root@xxxxxmail init.d]# grep smtp /etc/inetd.conf
smtp    stream  tcp     nowait  qmaild  /var/qmail/bin/tcp-env  tcp-env
/var/qmail/bin/qmail-smtpd


[root@xxxxxmail init.d]# qmail-showctl
qmail home directory: /var/qmail.
user-ext delimiter: -.
paternalism (in decimal): 2.
silent concurrency limit: 120.
subdirectory split: 23.
user ids: 510, 511, 512, 0, 513, 514, 515, 516.
group ids: 501, 502.

badmailfrom: (Default.) Any MAIL FROM is allowed.

bouncefrom: (Default.) Bounce user name is MAILER-DAEMON.

bouncehost: (Default.) Bounce host name is xxxxxmail.xxxxx.net.

concurrencylocal: (Default.) Local concurrency is 10.

concurrencyremote: (Default.) Remote concurrency is 20.

databytes: (Default.) SMTP DATA limit is 0 bytes.

defaultdomain: Default domain name is xxxxx.net.

defaulthost: (Default.) Default host name is xxxxxmail.xxxxx.net.

doublebouncehost: (Default.) 2B recipient host: xxxxxmail.xxxxx.net.

doublebounceto: (Default.) 2B recipient user: postmaster.

envnoathost: (Default.) Presumed domain name is xxxxxmail.xxxxx.net.

helohost: (Default.) SMTP client HELO host name is xxxxxmail.xxxxx.net.

idhost: (Default.) Message-ID host name is xxxxxmail.xxxxx.net.

localiphost: (Default.) Local IP address becomes xxxxxmail.xxxxx.net.

locals:
Messages for xxxxxmail.xxxxx.net are delivered locally.
Messages for xxxxxmail.xxxxx.net are delivered locally.

me: My name is xxxxxmail.xxxxx.net.

percenthack: (Default.) The percent hack is not allowed.

plusdomain: Plus domain name is xxxxx.net.

qmqpservers: (Default.) No QMQP servers.

queuelifetime: (Default.) Message lifetime in the queue is 604800 seconds.

rcpthosts:
SMTP clients may send messages to recipients at xxxxxmail.xxxxx.net.
SMTP clients may send messages to recipients at xxxxxmail.xxxxx.net.

morercpthosts: (Default.) No effect.

morercpthosts.cdb: (Default.) No effect.

smtpgreeting: (Default.) SMTP greeting: 220 xxxxxmail.xxxxx.net.

smtproutes: (Default.) No artificial SMTP routes.

timeoutconnect: (Default.) SMTP client connection timeout is 60 seconds.

timeoutremote: (Default.) SMTP client data timeout is 1200 seconds.

timeoutsmtpd: (Default.) SMTP server data timeout is 1200 seconds.

virtualdomains: (Default.) No virtual domains.

defaultdelivery: I have no idea what this file does.

 





On Thu, 24 Feb 2000, Robert Holder wrote:

> OK.  I downloaded and installed qmail, ucspi-tcp and daemontools.  I've read
> through about 70% of the documentation, and search the web for tips and
> help.  qmail appears to be running, and it appears to be queuing messages
> but it won't deliver them.  I've tried to figure it out, but I'm stuck.  I
> appreciate that people with normal intelligence can figure this out, but I
> just can't seem to, and I was supposed to have this done a week ago, and I
> have a lot of other things that I'm supposed to be doing, and this is my
> third week on the job and etc. etc. etc.

There are actually alot more good docs than there used to be.  See the
"user documentation" portion of the www.qmail.org site for some good links

> I wanted to use tcpserver, but I'm having trouble understanding how to use
> it.  I can't figure out how to generate smtprules.cdb.  I can't seem to find
> the smtprules(5) man page... We have another machine here that is running

Try "tcprules" instead :)  In a nutshell, you create the text file
"/etc/tcp.smtp and convert it to cdb format like this:

#!/bin/sh
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < \
/etc/tcp.smtp && echo ".cdb file updated" || echo "WARNING: .cdb file \
not updated"

If you're running qmail under tcpserver, take it out of inetd.  It's one
or the other, with the former being the better way to go.

Once you get that straightened out, look at your maillog/syslog and you'll
get some ideas about what's going on.

> qmail and is working happily, but qmail is not setup on that machine
> anything like the way it says to set it up in the docs I've read (it was
> setup by the unix guy before me).  This machine is supposed to forward
> messages that come in to host xxxxx.net as [EMAIL PROTECTED] and send them
> on to his AOL account or whatever, using a big aliases file.  I installed
> fastforward, and was able to get the newaliases to run after I cleaned out
> some badly formed addresses.  I've tried sending mail to a test address in
> the aliases file that looks like:
> 
> zzz123: [EMAIL PROTECTED]
> 
> ...but it doesn't deliver the message.  I can see the messages in the queue,
> but they just sit there.  I've also tried just sending mail to
> root@localhost and rholder@localhost, but they just get added to the queue,
> and don't get delivered.
> 
> i can telnet to port 25, send mail that way, but it just goes in the queue.
> I'm guessing that qmail-send isn't configured right, or smtprules.cdb (which
> i don't have) is causing the problem or... ugh... i'm just overwhelmed.  i'm
> sure that i've just made some dumb mistakes, but my boss will be back
> tomorrow and... you know the rest.
> 
> If anybody out there would take pity on a poor dumb unix guy who's just
> trying to pay off his credit cards, I would be SOOOOOO grateful!!!  :)  Any
> help at all would be appreciated!
> 
> Robert Holder
> 
> Here is some info:
> 
> [root@xxxxxmail init.d]# cat /etc/tcp.smtp
> 127.0.0.1:allow,RELAYCLIENT=""
> 192.168.6.:allow,RELAYCLIENT=""
> :allow
> [root@xxxxxmail init.d]# cd /etc/rc.d/init.d
> [root@xxxxxmail init.d]# ./qmail restart
> Restarting qmail:
> * Stopping qmail-smtpd.
> * Sending qmail-send SIGTERM and restarting.
> * Restarting qmail-smtpd.
> [root@xxxxxmail init.d]# qmail-qstat
> messages in queue: 8
> messages in queue but not yet preprocessed: 0
> [root@xxxxxmail init.d]# ps -ef | grep qmail
> root      8761  8760  0 19:38 pts/1    00:00:00 supervise qmail-send
> root      8763  8760  0 19:38 pts/1    00:00:00 supervise qmail-smtpd
> qmaill    8766  8764  0 19:38 pts/1    00:00:00 /usr/local/bin/multilog t
> /var/l
> qmaill    8768  8762  0 19:38 pts/1    00:00:00 /usr/local/bin/multilog t
> /var/l
> qmails    9581  8761  0 19:41 pts/1    00:00:00 qmail-send
> qmaill    9584  9581  0 19:41 pts/1    00:00:00 splogger qmail
> root      9585  9581  0 19:41 pts/1    00:00:00 qmail-lspawn |dot-forward
> .forwa
> qmailr    9586  9581  0 19:41 pts/1    00:00:00 qmail-rspawn
> qmailq    9587  9581  0 19:41 pts/1    00:00:00 qmail-clean
> root      9706  3816  0 19:42 pts/1    00:00:00 grep qmail
> 
> 
> [root@xxxxxmail init.d]# grep smtp /etc/inetd.conf
> smtp    stream  tcp     nowait  qmaild  /var/qmail/bin/tcp-env  tcp-env
> /var/qmail/bin/qmail-smtpd
> 
> 
> [root@xxxxxmail init.d]# qmail-showctl
> qmail home directory: /var/qmail.
> user-ext delimiter: -.
> paternalism (in decimal): 2.
> silent concurrency limit: 120.
> subdirectory split: 23.
> user ids: 510, 511, 512, 0, 513, 514, 515, 516.
> group ids: 501, 502.
> 
> badmailfrom: (Default.) Any MAIL FROM is allowed.
> 
> bouncefrom: (Default.) Bounce user name is MAILER-DAEMON.
> 
> bouncehost: (Default.) Bounce host name is xxxxxmail.xxxxx.net.
> 
> concurrencylocal: (Default.) Local concurrency is 10.
> 
> concurrencyremote: (Default.) Remote concurrency is 20.
> 
> databytes: (Default.) SMTP DATA limit is 0 bytes.
> 
> defaultdomain: Default domain name is xxxxx.net.
> 
> defaulthost: (Default.) Default host name is xxxxxmail.xxxxx.net.
> 
> doublebouncehost: (Default.) 2B recipient host: xxxxxmail.xxxxx.net.
> 
> doublebounceto: (Default.) 2B recipient user: postmaster.
> 
> envnoathost: (Default.) Presumed domain name is xxxxxmail.xxxxx.net.
> 
> helohost: (Default.) SMTP client HELO host name is xxxxxmail.xxxxx.net.
> 
> idhost: (Default.) Message-ID host name is xxxxxmail.xxxxx.net.
> 
> localiphost: (Default.) Local IP address becomes xxxxxmail.xxxxx.net.
> 
> locals:
> Messages for xxxxxmail.xxxxx.net are delivered locally.
> Messages for xxxxxmail.xxxxx.net are delivered locally.
> 
> me: My name is xxxxxmail.xxxxx.net.
> 
> percenthack: (Default.) The percent hack is not allowed.
> 
> plusdomain: Plus domain name is xxxxx.net.
> 
> qmqpservers: (Default.) No QMQP servers.
> 
> queuelifetime: (Default.) Message lifetime in the queue is 604800 seconds.
> 
> rcpthosts:
> SMTP clients may send messages to recipients at xxxxxmail.xxxxx.net.
> SMTP clients may send messages to recipients at xxxxxmail.xxxxx.net.
> 
> morercpthosts: (Default.) No effect.
> 
> morercpthosts.cdb: (Default.) No effect.
> 
> smtpgreeting: (Default.) SMTP greeting: 220 xxxxxmail.xxxxx.net.
> 
> smtproutes: (Default.) No artificial SMTP routes.
> 
> timeoutconnect: (Default.) SMTP client connection timeout is 60 seconds.
> 
> timeoutremote: (Default.) SMTP client data timeout is 1200 seconds.
> 
> timeoutsmtpd: (Default.) SMTP server data timeout is 1200 seconds.
> 
> virtualdomains: (Default.) No virtual domains.
> 
> defaultdelivery: I have no idea what this file does.
> 
>  
> 
> 

James Smallacombe                     PlantageNet, Inc. CEO and Janitor
[EMAIL PROTECTED]                                                     http://3.am
=========================================================================





Hi there;

I'm setting up qmail on a machine to forward mail for my kcsu.org.uk
domain.  It's intended to provide vanity addresses / mailing lists / other
email facilities to members of my college.  The people hosting the domain
forward all the mail for the domain to a single POP3 mailbox which gets
collected every few minutes by fetchmail in multidrop mode.

Inside my /var/qmail/alias folder is the master list of aliases (because
99% of people will only want their mail forwarding).  For a test case I
set up a file called .qmail-the:wonderful:wizard:of:oz containing the
single line `&[EMAIL PROTECTED]' (i.e. me at an
obviously traceable address).

What happens is that I send the mail to the @kcsu.org.uk address, it gets
sent to the ISP hosting my domain, the box in college picks it up, and
then I receive it maybe 0.5-2 hours later.  The full headers of my test
email are printed below, with the curious delay marked in square brackets:

---------- Forwarded message ---------- (start)
Received: (qmail 4988 invoked from network); 24 Feb 2000 19:30:07 -0000
Received: from localhost ([EMAIL PROTECTED])
  by localhost with SMTP; 24 Feb 2000 19:30:07 -0000
Received: from pop3.demon.co.uk
        by localhost with POP3 (fetchmail-5.1.1)
        for [EMAIL PROTECTED] (multi-drop); Thu,
     24 Feb 2000 19:30:07 +0000 (GMT)
Received: from punt-1.mail.demon.net by mailstore
          for [EMAIL PROTECTED] id
    951420104:10:28033:5;
          Thu, 24 Feb 2000 19:21:44 GMT
Received: from puce.csi.cam.ac.uk ([131.111.8.40]) by punt-1.mail.demon.net
           id aa1120002; 24 Feb 2000 19:21 GMT
Received: from kcsu.kings.cam.ac.uk ([131.111.198.161] ident=qmailr)
        by puce.csi.cam.ac.uk with smtp (Exim 3.13 #1)
        id 12O3nl-00057d-00
        for [EMAIL PROTECTED]; Thu, 24 Feb 2000 19:19:53 +0000
   [ --- why the delay here? --- ]
Received: (qmail 990 invoked by alias); 24 Feb 2000 18:54:52 -0000
Delivered-To: [EMAIL PROTECTED]
Received: (qmail 932 invoked from network); 24 Feb 2000 18:40:06 -0000
Received: from localhost ([EMAIL PROTECTED])
  by localhost with SMTP; 24 Feb 2000 18:40:06 -0000
Delivered-To: [EMAIL PROTECTED]
Received: from mail.ukservers.net
        by localhost with POP3 (fetchmail-5.2.3)
        for [EMAIL PROTECTED] (multi-drop); Thu,
     24 Feb 2000 18:40:06 +0000 (GMT)
Received: from pringle.oaktree.co.uk (pringle.oaktree.co.uk [193.82.129.28])
        by mail.ukservers.net (Postfix) with ESMTP id 1DAADD754
        for <[EMAIL PROTECTED]>; Thu,
     24 Feb 2000 18:36:55 +0000 (GMT)
Received: from soup-kitchen.demon.co.uk ([EMAIL PROTECTED]
    [131.111.198.242])
        by pringle.oaktree.co.uk (8.9.1/8.9.1) with SMTP id SAA00714
        for <[EMAIL PROTECTED]>; Thu, 24 Feb 2000 18:32:56 GMT
Received: (qmail 4670 invoked by uid 1000); 24 Feb 2000 18:35:58 -0000
Date: Thu, 24 Feb 2000 18:35:58 +0000 (GMT)
From: Matthew Bloch <[EMAIL PROTECTED]>
X-Sender: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Testing number 2
Message-ID: <[EMAIL PROTECTED]>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-UIDL: !Ye!!;YFe9(9+!!5V$e9

at 1835ish
--------------------------------------- (end)

Surely there should be no delay in simply forwarding a message on once
fetchmail has delivered it?  To add to the mystery, during this delay, I
can see the bodies of the delayed test messages (however many there are)
inside queue/mess but no control information anywhere else.  qmail-qread
shows up that nothing is queued, but the messages still get forwarded
after the mysterious delay.

NB to people who might suggest it: receiving the mail directly on my box
in college is pretty much impossible-- our college computer authorities
have a list of machines to which incoming SMTP connections are allowed,
and it'll be a cold day in hell before a student-run box gets onto the
list.  Hence I have to have an ISP receive mail for me.

I've set up qmail on my home machine manually without such troubles,
though the setup on the kcsu.org.uk box was done using the Debian
qmail-build program (or whatever it's called).  I assume it's trustworthy
etc. and I've compared its configuration to my (roughly similar) box at
home but in such odd circumstances I'd suspect everything.

Has anyone got any idea, then?

-- 
Matthew       ( http://www.soup-kitchen.demon.co.uk/ )







On Fri, 25 Feb 2000, Matthew Bloch wrote:

> Surely there should be no delay in simply forwarding a message on once
> fetchmail has delivered it?  To add to the mystery, during this delay, I
> can see the bodies of the delayed test messages (however many there are)
> inside queue/mess but no control information anywhere else.  qmail-qread
> shows up that nothing is queued, but the messages still get forwarded
> after the mysterious delay.

...I just found that qmail-qsanity program on qmail.org:

  kcsu:/var/qmail# ./qmail-qsanity-0.52 
  message has no entry in info: 1122321
  message is neither local nor remote: 1122321

Sortof consistent with what I said, but still strange.

Hmmm, well, I'll see whether anyone has any idea in the next day or so,
then I'll install it again by hand to see whether that makes a difference.

-- 
Matthew       ( http://www.soup-kitchen.demon.co.uk/ )








Hello, everyone:

Okay -- I know that this question has been asked before, and I know it's
been answered before, but I've sifted through all the the FAQs I could find,
heeded some of the advice, looked through the archives, and I'm no closer to
a clear answer or a solution.

The question:

How do I modify/configure qmail so that the messages I *receive* have the
appropriate time stamp on them? All my incoming mail appears in UTC.

I have checked my system clock. Hardware clock is in UTC, system timer shows
correct local time with offset.

I have switched from /var/qmail/bin/sendmail to /var/qmail/bin/datemail.
This has had no visible effect. Outgoing mail seemed to have the correct
timestamp on it before anyway -- or at least, the webmail client I was using
to test this feature was translating the timestamp in the header correctly.

I have implemented John Saunders patch, and this has had no effect either.
The problem persists.

Of note is that if I am using Netscape Messenger to retrieve e-mail, it will
show the correct local time of receipt. If I use Outlook, it will not. I
want the time to appear correctly in either one. (I haven't been able to
find any place in Outlook where you can set how headers are interpreted.)

Your assistance is much appreciated. Even if somebody tells me "at present,
there is no way to resolve this problem" I'd be happy.

Thanks,

Stephen Bosch





Hello All,
 
Like a good qmail user, I changed qmail-pop3d from inetd to tcpserver, but now it's really slow. It takes about 10 secs to respond. Is this usual.
Following are my start scripts.
 
Thanks,
JES 
 
here's what my run script look like:
/var/qmail/supervise/qmail-pop3d/run
#!/bin/sh
VUID=`id -u vpopmail`
VGID=`id -g vpopmail`
exec /usr/local/bin/softlimit -m 2000000 \
     /usr/local/bin/tcpserver -v -R -u $VUID -g $VGID 0 pop-3 \
     /var/qmail/bin/qmail-popup \
     www.ypay4it.com /mail/bin/vchkpw /var/qmail/bin/qmail-pop3d \
     Maildir 2>&1

/var/qmail/supervise/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
     /var/log/qmail/pop3d
 
 
___________________________________________________________________
Get your free, private email, mailing lists and web site at http://www.Ypay4it.com




At 10:40 PM -0500 2/24/00, Juan E Suris wrote:
>Hello All,
>
>Like a good qmail user, I changed qmail-pop3d from inetd to 
>tcpserver, but now it's really slow. It takes about 10 secs to 
>respond. Is this usual.
>Following are my start scripts.
>
>Thanks,
>JES
>
>here's what my run script look like:
>/var/qmail/supervise/qmail-pop3d/run
>#!/bin/sh
>VUID=`id -u vpopmail`
>VGID=`id -g vpopmail`
>exec /usr/local/bin/softlimit -m 2000000 \
>      /usr/local/bin/tcpserver -v -R -u $VUID -g $VGID 0 pop-3 \


Turn off reverse lookups.  Add a -H.

>      /var/qmail/bin/qmail-popup \
>      <http://www.ypay4it.com>www.ypay4it.com /mail/bin/vchkpw 
>/var/qmail/bin/qmail-pop3d \
>      Maildir 2>&1
>
>/var/qmail/supervise/qmail-pop3d/log/run
>#!/bin/sh
>exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
>      /var/log/qmail/pop3d
>
>
>___________________________________________________________________
>Get your free, private email, mailing lists and web site at 
><http://www.Ypay4it.com>http://www.Ypay4it.com

--
Paul J. Schinder
NASA Goddard Space Flight Center
Code 693
[EMAIL PROTECTED]




>At 10:40 PM -0500 2/24/00, Juan E Suris wrote:
>>Hello All,
>>
>>Like a good qmail user, I changed qmail-pop3d from inetd to
>>tcpserver, but now it's really slow. It takes about 10 secs to
>>respond. Is this usual.
>>Following are my start scripts.
>>
>>Thanks,
>>JES
>>
>>here's what my run script look like:
>>/var/qmail/supervise/qmail-pop3d/run
>>#!/bin/sh
>>VUID=`id -u vpopmail`
>>VGID=`id -g vpopmail`
>>exec /usr/local/bin/softlimit -m 2000000 \
>>      /usr/local/bin/tcpserver -v -R -u $VUID -g $VGID 0 pop-3 \
>
>
>Turn off reverse lookups.  Add a -H.
>


Didn't work. Same delay.  BTW, I am having the same problem with qmail-smtpd
(init script exactly like lwq with -H).

Thanks,
JES






I had Qmail working fine at home and tommorrow the system goes to it's final
resting place. But after  I changed the IP address to the new one, now qmail
doesnt work at all.

I'm using Qmail+vpopmail and starting everything with tcpserver. I know that
qmail and it's daemons are running since they show up when I do a 'ps aux'.

When I try to hit the box from Outlook Express, it times out. When I try to
telnet into port 25 or 110, I never get the  ready prompt.

I think that I've missed something and the old IP address is still lurking
in one of the files, but I cant find it Anyone have any ideas?

Thanks
Derrick
[EMAIL PROTECTED]






----- Original Message -----
From: "Derrick Hopkins" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, February 24, 2000 11:18 PM
Subject: No Qmail after changing IP addresses


> I had Qmail working fine at home and tommorrow the system goes to it's
final
> resting place. But after  I changed the IP address to the new one, now
qmail
> doesnt work at all.
>
> I'm using Qmail+vpopmail and starting everything with tcpserver. I know
that
> qmail and it's daemons are running since they show up when I do a 'ps
aux'.
>
> When I try to hit the box from Outlook Express, it times out. When I try
to
> telnet into port 25 or 110, I never get the  ready prompt.
>
> I think that I've missed something and the old IP address is still lurking
> in one of the files, but I cant find it Anyone have any ideas?
>
>

Slight update on the problem. It seems that I -can- connect to qmail, only
it takes a lot longer than it should. After 3 minutes of staring at a blank
telnet screen, the ready prompt finally pops up and I can run through the
tests with no problem. Also, if I let Outlook wait (2 or 3 times) it finally
checks the mailbox.

What can be causing such a huge delay between connections?
Thanks,
 Derrick
[EMAIL PROTECTED]





Hi,
 
I see that there are lots of mails that are getting bounced and are sitting in the postmaster account. How can I resend these mails.
 
Next I have a problem with the & symbol in qmail. One person posted to do it in someway and I did it but still that does not seem to work.
 
Can anyone help me how to have an account like f&b..
 
Thanks
John




On Fri, Feb 25, 2000 at 02:29:46PM +0800, john wrote:
> I see that there are lots of mails that are getting bounced and are sitting in the 
>postmaster account. How can I resend these mails.

this depends on your mail client.

 
> Next I have a problem with the & symbol in qmail. One person posted to do it in 
>someway and I did it but still that does not seem to work.
> 
> Can anyone help me how to have an account like f&b..

works for me:
        [root@csl42 char]# useradd -m 'a&s'
        [root@csl42 char]# cd /home/a\&s
        [root@csl42 a&s]#
        [root@csl42 a&s]# /var/qmail/bin/maildirmake ./Maildir
        [root@csl42 a&s]# chown 'a&s' Maildir
        [root@csl42 a&s]# chown 'a&s' Maildir/*
        [root@csl42 a&s]# echo test | mail 'a&[EMAIL PROTECTED]'
        [root@csl42 a&s]# ls -l Maildir/new/
        total 1
        -rw------- 1 a&s a&s 287 Feb 24 23:13 951466423.9243.csl42.csl-gmbh.net
This is linux.
OpenBSD and BSD/OS adduser dislike it.

Note that at least bash dislike this user name:
        [root@csl42 char]# cd ~'a&s'
        bash: ~a&s: No such file or directory
vanilla qmail works.

btw: it's hard to read your message. Please keep the lines below 80
characters (limits of 72 or 76 are most often recommended).

Regards, Uwe




hi there,

I have a problem with aol domain...My customers cannot send mail to aol.com 
(american on line)domain.Is there any seetings to be amde at our end 
...please tell if somebody has come accross with such problem

kailash
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com





On Fri, Feb 25, 2000 at 12:28:42PM +0200, kailash oswal wrote:
> hi there,
> 
> I have a problem with aol domain...My customers cannot send mail to aol.com 
> (american on line)domain.Is there any seetings to be amde at our end 
> ...please tell if somebody has come accross with such problem
> 
> kailash
> ______________________________________________________
> Get Your Private, Free Email at http://www.hotmail.com
> 

Snipped from www.qmail.org:

Patches for high-volume servers
 If you want to have any hope of talking to AOL, you've got to install
 Christopher K. Davis's patch to accept oversize DNS packets. It works
 on both qmail's dns.c and tcpserver's dns.c.


I guess that answer's your question..

Best regards
 Michael Boman

-- 
W I Z O F F I C E . C O M   P T E   L T D  -  Your Online Office Wizard
16 Tannery Lane, Crystal Time Building, #06-00, Singapore 347778
Voice : (+65) 844 3228 [extention 118]  Fax : (+65) 842 7228
Pager : (+65) 92 93 29 49               ICQ : 5566009
eMail : [EMAIL PROTECTED]           URL : http://www.wizoffice.com




Hi,
 
How do I create an alias for a user  in the default domain. As it is easy to use qmailadmin to create alias for the virtual domains.
 
But I don't know how to create alias for the default domain in Vpopmail.
 
Regards
John




Hi,
 
When sending the mail through MDAEMON I get the following error message. What is this? and how to solve this ? Is it a problem with qmail or with MDaemon
 
The attached message had transient non-fatal delivery errors
>>
>>THIS IS A WARNING MESSAGE ONLY - YOU DO NOT NEED TO RESEND YOUR MESSAGE!
>>
>>This server is configured to automatically retry delivery at configured
>>intervals.  Subsequent attempts to deliver this message are pending.
>>
>>--- Partial Session Transcript ---
>>  354 Enter mail, end with "." on a line by itself
>>  Sending <C:\MDAEMON\REMOTEQ\RETRY\MD00271.MSG> to [194.244.4.132]
>>  Winsock Error 10060: The connection timed out.
>>  Error writing to socket
>>  This message is 0 days old; it has 5 days left to get delivered
>>--- End Transcript ---
>>
>>: Message contains [1] file attachments
>>





> When sending the mail through MDAEMON I get the following error message.
> What is this? and how to solve this ? Is it a problem with
> qmail or with MDaemon

Read the message again and you will see that

a) it is no error message, it's a WARNING MESSAGE ONLY
b) the message comes from MDaemon, so there is no problem in qmail
c) the reason is given: MDaemon simply cannot connect to
   194.244.4.132 but it will try five further days

If 194.244.4.132 is reachable on Port 25 it may be a problem in the 
winsock on the MDaemon machine. It's not uncommon. In this case reboot 
the Windows machine.

Regards, Frank

> >>THIS IS A WARNING MESSAGE ONLY - YOU DO NOT NEED TO RESEND YOUR MESSAGE!
> >>
> >>This server is configured to automatically retry delivery at configured
> >>intervals.  Subsequent attempts to deliver this message are pending.
> >>
> >>--- Partial Session Transcript ---
> >>  354 Enter mail, end with "." on a line by itself
> >>  Sending <C:\MDAEMON\REMOTEQ\RETRY\MD00271.MSG> to [194.244.4.132]
> >>  Winsock Error 10060: The connection timed out.
> >>  Error writing to socket
> >>  This message is 0 days old; it has 5 days left to get delivered
> >>--- End Transcript ---





> > >>  354 Enter mail, end with "." on a line by itself
I overlooked this line.

This means that the SMTP dialogue was already done and the timeout occured 
during transmission of the message. 
May be the receiver at 194.244.4.132 has a problem and doesn't report it 
to the sender.

Regards, Frank




can anybody tell me where qmail store log files after few day's ?
i can't find them in /var/log/qmail exept for past 2 day's.
 
 
ls -la /var/log/qmail/
-r--r--r--   1 qmaill   nofiles    100031 Feb 24 21:51 @00000951421431
-r--r--r--   1 qmaill   nofiles    100007 Feb 24 23:01 @00000951425481
-r--r--r--   1 qmaill   nofiles    100045 Feb 24 23:58 @00000951429692
-r--r--r--   1 qmaill   nofiles    100008 Feb 25 01:23 @00000951433120
-r--r--r--   1 qmaill   nofiles    100001 Feb 25 02:50 @00000951438221
-r--r--r--   1 qmaill   nofiles    100048 Feb 25 02:53 @00000951443445
-r--r--r--   1 qmaill   nofiles    100020 Feb 25 04:35 @00000951443619
-r--r--r--   1 qmaill   nofiles    100025 Feb 25 07:42 @00000951449724
-r--r--r--   1 qmaill   nofiles    100074 Feb 25 09:46 @00000951460937
-rw-r--r--   1 qmaill   nofiles     49909 Feb 25 10:21 @00000951468378
  
 

----
D r e n i k   N e t w o r k s  /  Y u g o s l a v i a
 
Luka Z. Gerzic
Graphic design, prepress, html, networking
home page:  http://www.linux.drenik.net
email: [EMAIL PROTECTED] / GSM +381 64 11 0 29 56
 




> can anybody tell me where qmail store log files after few day's ?
> i can't find them in /var/log/qmail exept for past 2 day's.

Your cyclog seems to keep only 10 files. Either increase the generated 
file size or the number of files for rotation or both.

Regards, Frank




On Fri, Feb 25, 2000 at 10:24:49AM +0100, Luka Gerzic wrote:

> can anybody tell me where qmail store log files after few day's ?
> i can't find them in /var/log/qmail exept for past 2 day's.

reconfigure /service/qmail/log/run or whatever script starts the qmail
system. I use something like that:
exec /usr/local/bin/multilog \
  t \
  n100 \
  s1000000 \
  /var/log/qmail
That means: 100 log files of about 1 MB size each.
On that machine it's about 14 days ...

Regards, Uwe


Reply via email to