Здравствуйте!
Если письма отправляют мне на несколько адресатов, то письма не доходят а приходит администратору Postfix письмо в поле кому указано undisclosed-recipients
Так же если от меня отправлять письма на несколько адресатов то письма не доходят до адресатов.
Ситема freeBSD 5.4
Postfix2.2.5
ClamAV 0.87
clamsmtp1.5
SpamAssassin3.1
Прошу помочь разобраться
postfix (cleanup) вставляет в заголовки письма To: undisclosed-recipients, если письмо не содержит To: или Cc:man 5 postfix
...
undisclosed_recipients_header (default: To: undisclosed-recipients:;)
Message header that the Postfix cleanup(8) server inserts when a mes-
sage contains no To: or Cc: message header.
...
Да это мне понятно, скорей всего я переборщил с
reject_unknown_hostname
ставил всюду где только мог, и не позаботился об исключениях для этого правила, убрал помогло.(продумаю исключения, поставлю опять)
Но вот одно письмо зарезалось в этом
smtpd_helo_restrictions =
permit_mynetworks,
reject_non_fqdn_hostname,
reject_invalid_hostname,
reject_unknown_hostname письмо отвергло по этому правилу.
Тут я считал что это правило законно применено.Подскажите где стоит употреблять reject_unknown_hostname
>Подскажите где стоит употреблять reject_unknown_hostname
В документации написано где
man 5 postconfsmtpd_helo_restrictions (default: empty)
...
reject_unknown_hostname
Reject the request when the HELO or EHLO hostname has no DNS A or MX record.
...reject_unknown_hostname не имеет никакого отношения к отсутсвующим в заголовках письма To: или Cc:
Вот проверял не так, работает как то странно, не понятно где искать, подскажи куда копать, почему при рассылке на несколько адресов получается такое
Смотрите логи, они о многом расскажут. Если у postfix-а все нормально, то смотрите Ваши "фильтры" (скрипты, spamassassin и т.п.).
Точно что то с подключением SpamAssassin
(не хочется оставаться без антиспама)
может скрипт виноват
#!/usr/bin/perl -w
use strict;
use Net::SMTP;
my $host = &sasl_ch(shift(@ARGV), '"');
my $ehlo = &sasl_ch(shift(@ARGV), '"');
my $mail_from = &sasl_ch(shift(@ARGV), '"');
my $rcpt_to = &sasl_ch(shift(@ARGV), '"');
my $spamc = &sasl_ch(shift(@ARGV), '"');if (!defined($host)||!defined($ehlo)||!defined($mail_from)||!defined($rcpt_to))
{
die("use $0 <host> <ehlo> <mail_from> <rcpt_to> [cmd]\n");
}if (defined($spamc))
{
open(CF, "$spamc | ") or undef($spamc);
}my $smtp = Net::SMTP->new($host);
$smtp->hello($ehlo);
$smtp->mail($mail_from);
$smtp->to($rcpt_to);$smtp->data();
if (defined($spamc)) {
while(<CF>) {
next if (/^delivered\-to\:/i);
$smtp->datasend($_);
}
}
else {
while(<>) {
next if (/^delivered\-to\:/i);
$smtp->datasend($_);
}
}$smtp->datasend();
close(CF) if defined($spamc);$smtp->quit;
exit 0;sub sasl_ch($$) {
my($string, $chars) =(shift(), shift());
return(undef) unless defined($string);
$string=~ s/^[Q$chars\E]+//;
$string=~ s/[Q$chars\E]+$//;
return($string);
}
Нашел, надо указать в main.cf
spamfilter_destination_recipient_limit = 1