My build is courier 0.37.3.

I have applied a patch to submit.C to allow a single header to reach the
headerlimit (100000) as suggested by Alexei Batyr.

if (l > headerlimit/* || l > 5000*/) (line 1023)

This has always worked beautifully in the past with previous versions
allowing our company to send to multiple addresses in one message. Now with
0.37.3 i find other issues. Initially i was getting the error "431 Too many
Recipients".
I got over that by employing a BOFH filter for maximum number of recipients
per message. That also worked great but know if i try to send to everyone in
my address book (Now has reached some 300 contacts) i get the following
error:
"534 Message header size, or recipient list, exceeds policy limit."

Now i know its not the Recipient list (because of the bofh filter), and i
know its not the header size (default is 100000, my entire message is only
20480 bytes and even if i increase the value of headerlimit in submit.C,
regenerate the rpm and reinstall it still fails).

>From looking in submit.C i think it has more to do with the headercnt value.
>From what i can see this is the last value that gets checked before
outputting the error i am getting. headercnt is set to 500 (line 932)
initially.

The piece of code in the submit.C which i am talking about is:

   1223        while (!cin.eof())
   1224         {
   1225         int     i, l;
   1226
   1227                 line.readline(cin, 5000);
   1228                 if ( (i=cin.get()) != EOF && i != '\n')
   1229                         headercnt=0;
   1230                 if (headercnt == 0)     continue;
   1231                 l=line.GetLength();
   1232                 if (l && line[l-1] == '\r')
   1233                         line.Chop();    // Strip trailing CR
   1234
   1235                 if (i != EOF || line.GetLength())
   1236                 {
   1237                         line += '\n';
   1238                         my_rcptinfo.submitfile.Message(line);
   1239                 }
   1240                 if (i == EOF)   break;
   1241
   1242                 // Periodically reset the timeout
   1243
   1244                 if ( (bytecnt += l) >= 10000)
   1245                 {
   1246                         bytecnt=0;
   1247                         alarm(TIMEOUT);
   1248                 }
   1249         }
   1250
   1251         if (received_cnt > 100)
   1252         {
   1253                 cout << "546 Routing loop detected -- too many
Received:
         headers." << endl << flush;
   1254                 mf->flag=1;
   1255         }
   1256         else if (headercnt == 0)
   1257         {
   1258                 cout << "534 Message header size, or recipient list,
exc
        eeds policy limit."
   1259                                                         << endl <<
flush
        ;

>From what i can gather if headercnt is not 0 after all processing the error
message comes into play. I have also tried increasing the headercnt variable
from 500 (default) to 5000, recompiling and reinstalling but this still has
not helped me. This may be the wrong thing to change though.

How can i get around this?

Thanks in advance.

Regards,

Les Stott
Systems Administrator
Rentokil Initial
[EMAIL PROTECTED]
(02) 9370 9348


This email is confidential. If you are not the intended recipient, you must
not disclose
or use the information contained in it. If you have received this in error,
please
advise the sender by return email and delete the material from your
computer.

Rentokil Initial Pty Ltd ABN 98 000 034 597 does not warrant that any
attachments are free from viruses or any other defects. You assume all
liability for any loss, damage or other consequences which may arise from
opening or using the attachments.


_______________________________________________
courier-users mailing list
[EMAIL PROTECTED]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to