Eu uso o Postfix na minha máquina (linux).
Quando envio um email para um usuário local com telnet localhost 25 na linha de comando, meu email é analisado por um filtro de conteúdo (por exemplo: spamassassin) = > não tem problema.
Mas quando eu envio um e-mail para o mesmo usuário local com comando de correio (ou comando sendmail ou mail php), meu e-mail é enviado mas não analisado pelo filtro de conteúdo = > então por quê?
Por que meu e-mail não é analisado por um filtro de conteúdo quando eu uso o comando mail?
A configuração do meu postfix é muito básica:
postconf -n:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_size_limit = 0
mydestination = localhost.localdomain, localhost, localhost.localdomain, localhost
myhostname = localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
recipient_delimiter = +
relayhost =
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
postconf -M:
smtp inet n - n - - smtpd -o content_filter=spamassassin
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
spamassassin unix - n n - - pipe user=mail argv=/usr/bin/spamc -u ${user} -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Repito o meu problema: quando eu uso o telnet localhost 25 para enviar um e-mail para um usuário local (guest), o spamassassin analisa o e-mail e o syslog é exibido:
Feb 4 15:05:42 localhost postfix/smtpd[3919]: connect from localhost[::1]
Feb 4 15:05:50 localhost postfix/smtpd[3919]: EBC2460DBF: client=localhost[::1]
Feb 4 15:05:59 localhost postfix/cleanup[3922]: EBC2460DBF: message-id=<20150204140550.EBC2460DBF@localhost>
Feb 4 15:05:59 localhost postfix/qmgr[3883]: EBC2460DBF: from=<[email protected]>, size=342, nrcpt=1 (queue active)
Feb 4 15:05:59 localhost spamd[18634]: spamd: connection from localhost [127.0.0.1] at port 48540
Feb 4 15:05:59 localhost spamd[18634]: spamd: processing message <20150204140550.EBC2460DBF@localhost> for guest:122
Feb 4 15:06:08 localhost spamd[18634]: spamd: clean message (0.2/5.0) for guest:122 in 9.1 seconds, 296 bytes.
Feb 4 15:06:08 localhost spamd[18634]: spamd: result: . 0 - ALL_TRUSTED,MISSING_HEADERS scantime=9.1,size=296,user=guest,uid=122,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=48540,mid=<20150204140550.EBC2460DBF@localhost>,autolearn=ham
Feb 4 15:06:08 localhost spamd[18632]: prefork: child states: II
Feb 4 15:06:08 localhost postfix/pickup[3881]: 6844560FDB: uid=8 from=<[email protected]>
Feb 4 15:06:08 localhost postfix/pipe[3923]: EBC2460DBF: to=<[email protected]>, orig_to=<guest>, relay=spamassassin, delay=22, delays=12/0.01/0/9.2, dsn=2.0.0, status=sent (delivered via spamassassin service)
Feb 4 15:06:08 localhost postfix/qmgr[3883]: EBC2460DBF: removed
Feb 4 15:06:08 localhost postfix/cleanup[3922]: 6844560FDB: message-id=<20150204140550.EBC2460DBF@localhost>
Feb 4 15:06:08 localhost postfix/qmgr[3883]: 6844560FDB: from=<[email protected]>, size=656, nrcpt=1 (queue active)
Feb 4 15:06:08 localhost postfix/local[3928]: 6844560FDB: to=<[email protected]>, relay=local, delay=0.18, delays=0.12/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
Feb 4 15:06:08 localhost postfix/qmgr[3883]: 6844560FDB: removed
= > não tem problema.
Mas se eu usar apenas o comando mail:
echo "test" | mail -s "test" guest
, o e-mail é enviado, mas o spamassassin não analisou o e-mail porque o syslog exibe isso:
Feb 4 15:09:36 localhost postfix/pickup[3881]: B6C1960DC0: uid=1000 from=<guest>
Feb 4 15:09:36 localhost postfix/cleanup[3956]: B6C1960DC0: message-id=<20150204140936.B6C1960DC0@localhost>
Feb 4 15:09:36 localhost postfix/qmgr[3883]: B6C1960DC0: from=<[email protected]>, size=339, nrcpt=1 (queue active)
Feb 4 15:09:36 localhost postfix/local[3957]: B6C1960DC0: to=<[email protected]>, orig_to=<guest>, relay=local, delay=0.18, delays=0.12/0/0/0.07, dsn=2.0.0, status=sent (delivered to mailbox)
Feb 4 15:09:36 localhost postfix/qmgr[3883]: B6C1960DC0: removed
Uma ideia?
Obrigado, cordialmente.