Ummm...I'm running out of idea pretty quickly here - here are some
things to 'try'...

First, check to make sure that $reportdir/$eachowner.mail contains
what you want it to after the first part runs, but before the sendmail
stuff.

Also, I notice that you are appending to these files - '>>'.  Are you
doing some cleanup each time the program is run?

Try adding -odq to then end of the sendmail command - this will queue
the messages instead of sending immediately - not sure if this will do
any good or not.

Try turning off buffering
:
my $oldfh = select(SENDMAIL);

$| = 1;

>      while (<MAILFILE>){
>         print SENDMAIL $_;
>      }

select($old_fh)

Also, the line:

> cc: myboss\@my

I'd remove that while you try this stuff, and only put it back in when
you're certain this thing works... :-)

That's all I can think of - hopefully someone more experienced with
such matters will pop up with the right answer soon...

-RN

loan tran <[EMAIL PROTECTED]> writes:

> Robin et all,
> 
> I've tried what you recommended but still face the
> same problem, some of my receivers do not receive full
> message. I cannot figure out why.
> 
> Here is new code. (note that @ownerlist has 25
> elements)
> 
> # 
> foreach $eachowner(@ownerlist){
>       $sql_ownwhat = qq(select sybaseServer, dbName
> from DatabaseOwner where email_test = "$eachowner");
>      
> &sybase_connect("FCCDEV01W",'aigdb',"$sql_ownwhat");
> 
> #combine all files that belong to each owner to one
> file.
> 
> while($ownwhatdata = $sth->fetchrow_hashref){
>          
>   `cat
> $reportdir/$ownwhatdata->{sybaseServer}..$ownwhatdata->{dbName}.users
> >> $reportdir/$eachowner.mail`;
> }#end while
> $sth->finish;
> 
> #now start send mail
> 
> open (MAILFILE,"$reportdir/$eachowner.mail") or die
> "Can not open ! $!";
> open(SENDMAIL, "|/usr/lib/sendmail -oi -t") or die
> "Cannot fork for send mail: $! \n";
> print SENDMAIL<<"EOF";
> From: ltran\@my
> To: you\@yourhost
> cc: myboss\@my
> Subject: Report
> 
> Howdy,
> I'm sending you bla bla.... 
> EOF
>      while (<MAILFILE>){
>         print SENDMAIL $_;
>      }
> close MAILFILE;
> close(SENDMAIL) or warn "sendmail dinnot close
> nicely";
> }#end foreach
> 
> 
> --- Robin Norwood <[EMAIL PROTECTED]> wrote:
> > loan tran <[EMAIL PROTECTED]> writes:
> > 
> > > Howdy,
> > > 
> > > 1. Can a variable store a text file with 40000+
> > bytes
> > > in size?
> > 
> > I am under the impression that a scalar can be as
> > big as you need.  I
> > *suspect* that the problem lies in limitations on
> > the size of an <<EOF
> > document - but someone more knowledgable will have
> > to answer that
> > part.
> > 
> > > 2. How can I cc or send a message to 2 persons at
> > the
> > > same time using sendmail?
> > 
> > A comma-seperated list, or Cc: - -
> > To: addr\@host.com, addr2\@host2.org
> > Cc: rdda\@toast.com
> > 
> > > 3. Could someone please suggest a better way than
> > mine
> > > to send a content of a text file using sendmail. 
> > 
> > I believe the 'canonical' way is:
> > 
> > open(INPUT, '$reportdir/$eachowner.txt') or die
> > "Danger!  $!";
> > 
> > > Below is part of my script. The problem is if my
> > > message is big ($eachowner.txt is over 40000
> > bytes)
> > > a receiver does not get the whole message.  
> > 
> > #...don't use this...
> > > $mail_message = `cat $reportdir/$eachowner.txt`;
> > > &sendownermail($eachowner,$mail_message);
> > #...back to your code...
> > 
> > 
> > > sub sendownermail{
> > > my $to        = $_[0];
> > > my $mail_message = $_[1];
> > > open(SENDMAIL, "|/usr/lib/sendmail -oi -t") or die
> > > "Cannot fork for send mail: $! \n";
> > > print SENDMAIL<<"EOF";
> > > From: [EMAIL PROTECTED]
> > > To: $to\@yourhost.com
> > > Subject: db Report
> > > 
> > > EOF
> > 
> > #...get rid of this part... -V
> > > 
> > > $mail_message
> > > 
> > > EOF
> > #...and use this instead... -V
> > 
> > while (<INPUT>) {
> >   print SENDMAIL $_;
> > }
> > 
> > close(INPUT);
> > 
> > > close(SENDMAIL) or warn "sendmail dinnot close
> > > nicely";
> > > }# end sendownermail
> > 
> > This way, no more than one line of <INPUT> is in
> > memory at one time.
> > 
> > -RN
> > 
> > -- 
> > 
> > Robin Norwood
> > Red Hat, Inc.
> > 
> > "The Sage does nothing, yet nothing remains undone."
> > -Lao Tzu, Te Tao Ching
> > 
> > -- 
> > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - Feel better, live better
> http://health.yahoo.com

-- 

Robin Norwood
Red Hat, Inc.

"The Sage does nothing, yet nothing remains undone."
-Lao Tzu, Te Tao Ching

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to