On Thu, 16 Jun 2011 11:08:25 +0200 Claudio Prono <[email protected]> wrote:
> > > Il 16/06/2011 10.33, Stevan Bajić ha scritto: > > On Thu, 16 Jun 2011 10:14:49 +0200 > > Claudio Prono <[email protected]> wrote: > > > >> Hello Stevan, > >> > > Hello Claudio, > > > > > >> Tnx for the reply. > >> > >> Il 15/06/2011 21.23, Stevan Bajić ha scritto: > >>> On Wed, 15 Jun 2011 13:21:19 +0200 > >>> Claudio Prono <[email protected]> wrote: > >>> > >>>> Hello all, > >>>> > >>> Hello Claudio, > >>> > >>> > >>>> After a recent migration of a mailserver i have some problems with the > >>>> training of dspam: when i send a mail for retraining, i have this on > >>>> logs: > >>>> > >>>> Jun 15 12:50:55 mail2 dspam[27718]: Signature retrieval for > >>>> '2,4df84600159243584 > >>>> 817994' failed > >>>> Jun 15 12:50:55 mail2 dspam[27718]: Unable to find a valid signature. > >>>> Aborting. > >>>> Jun 15 12:50:55 mail2 dspam[27718]: process_message returned error -5. > >>>> dropping > >>>> message. > >>>> > >>>> I have checked, the signature is present into the database, but the > >>>> query of dspam is wrong (i have activate the mysql debug): > >>>> > >>>> 33 Connect dspam@localhost on dspam > >>>> 33 Query SELECT uid FROM dspam_virtual_uids WHERE > >>>> username='spam' > >>>> 33 Query SHOW VARIABLES WHERE > >>>> variable_name='max_allowed_packet' > >>>> 33 Query SHOW VARIABLES WHERE > >>>> variable_name='max_allowed_packet' > >>>> 33 Query SELECT uid FROM dspam_virtual_uids WHERE > >>>> username='spam' > >>>> 33 Query SELECT uid FROM dspam_virtual_uids WHERE > >>>> username='spam' > >>>> > >>>> The username is always wrong, is not spam but the username of the sender > >>>> e-mail (like [email protected]). > >>>> > >>> this depends on how you have implemented that retraining. > >>> > >>> > >>>> Here is my relevant config on postfix: > >>>> > >>>> in master.cf: > >>>> > >>>> dspam unix - n n - 10 pipe > >>>> flags=u user=nobody argv=/usr/sbin/dspam --deliver=innocent > >>>> --feature=noise --user ${recipient} > >>>> spam unix - n n - - pipe > >>>> flags=u user=nobody argv=/usr/sbin/dspam --class=spam --source=error > >>>> --user spam > >>>> nospam unix - n n - - pipe > >>>> flags=u user=nobody argv=/usr/sbin/dspam --class=innocent > >>>> --source=error --user spam > >>>> > >>> Aha. See that "--user spam" in the process "spam" and "nonspam"? > >>> > >>> > >> Yes, i have noticed that, but with the config "ChangeUserOnParse full", > >> the user is changed with the rcpt to of the mail, according with the > >> documentation: > >> > > yes, but you have to follow specific naming of the alias for the retraining > > to have that mechanism working. > > > >> # ChangeUserOnParse: Automatically change the username to match that > >> specified > >> # in the To: header. For example, [email protected] will set the > >> username > >> # to bob, ignoring any --user passed in. This may not always be > >> desirable if > >> # you are using virtual email addresses as usernames. Options: > >> # on or user take the portion before the @ sign only > >> # full take everything after the initial {spam,notspam}-. > >> > >> Is right? > >> > > Yes. It's right. But do you see the note on 'full'? The spam/ham alias > > would in your case then be "[email protected]" and > > "[email protected]". > > > > > >>>> And my dspam.config of mysql: > >>>> > >>>> MySQLServer /var/run/mysql/mysql.sock > >>>> MySQLPort > >>>> MySQLUser dspam > >>>> MySQLPass [pass] > >>>> MySQLDb dspam > >>>> MySQLCompress true > >>>> MySQLVirtualTable dspam_virtual_uids > >>>> MySQLVirtualUIDField uid > >>>> MySQLVirtualUsernameField username > >>>> MySQLUIDInSignature on > >>>> > >>> This is all fine and dandy but the real relevant config is how you have > >>> setup DSPAM to parse the user. Have you set "ParseToHeaders", > >>> "ChangeModeOnParse" and/or "ChangeUserOnParse"? > >>> > >> here is my settings: > >> > >> ParseToHeaders on > >> ChangeModeOnParse on > >> ChangeUserOnParse full > >> > >> The thing i don't understand is: if i change this values (like > >> ChangeUSerOnParse on), the mysql query is always done with the user > >> spam..... > >> > > Because you don't follow the proper naming convention needed to have the > > parsing working. > > > > > >> The last thing i have tryied also is add the option "Broken > >> lineStripping", but nothing has changed.... > >> > >> What i can try ? > >> > > First of all you should post ALL your config here. Not just bits. It's > > frustrating to try to help and with every response getting answers back > > from you where you show more configuration and that additional new info > > changes the whole picture. Please post whole dspam.conf and post the whole > > config how you have implemented the retraining in Postfix. How and when do > > you pipe to that spam/nonspam transport in Postfix, etc... Posting whole > > master.cf and main.cf (or just postconf -n) is a good thing too. > > > Ok, sorry, here is my dspam.conf: > > Home /var/lib/dspam > StorageDriver /usr/lib64/dspam/libmysql_drv.so > TrustedDeliveryAgent "/usr/bin/procmail -d %u" > DeliveryHost 127.0.0.1 > DeliveryPort 10027 > DeliveryIdent localhost > DeliveryProto SMTP > OnFail error > Trust root > Trust dspam > Trust apache > Trust mail > Trust mailnull > Trust smmsp > Trust daemon > Trust nobody > Debug * > TrainingMode teft > TestConditionalTraining on > Feature noise > Feature whitelist > Algorithm graham burton > Tokenizer chain > PValue bcr > WebStats on > Preference "spamAction=quarantine" > Preference "signatureLocation=headers" # 'message' or 'headers' > Preference "showFactors=Off" > AllowOverride trainingMode > AllowOverride spamAction spamSubject > AllowOverride statisticalSedation > AllowOverride enableBNR > AllowOverride enableWhitelist > AllowOverride signatureLocation > AllowOverride showFactors > AllowOverride optIn optOut > AllowOverride whitelistThreshold > MySQLServer /var/run/mysql/mysql.sock > #MySQLPort > MySQLUser dspam > MySQLPass [password] > MySQLDb dspam > MySQLCompress true > MySQLReconnect true > MySQLVirtualTable dspam_virtual_uids > MySQLVirtualUIDField uid > MySQLVirtualUsernameField username > MySQLUIDInSignature on > HashRecMax 98317 > HashAutoExtend on > HashMaxExtents 0 > HashExtentSize 49157 > HashPctIncrease 10 > HashMaxSeek 10 > HashConnectionCache 10 > Notifications off > PurgeSignatures 14 # Stale signatures > PurgeNeutral 90 # Tokens with neutralish probabilities > PurgeUnused 90 # Unused tokens > PurgeHapaxes 30 # Tokens with less than 5 hits (hapaxes) > PurgeHits1S 15 # Tokens with only 1 spam hit > PurgeHits1I 15 # Tokens with only 1 innocent hit > LocalMX 127.0.0.1 > SystemLog on > UserLog on > Opt out > ParseToHeaders on > ChangeModeOnParse on > ChangeUserOnParse full > ProcessorURLContext on > ProcessorBias on > > And here is my postconf -n > > alias_maps = hash:/etc/aliases > biff = no > broken_sasl_auth_clients = yes > canonical_maps = hash:/etc/postfix/canonical > command_directory = /usr/sbin > config_directory = /etc/postfix > daemon_directory = /usr/lib/postfix > data_directory = /var/lib/postfix > debug_peer_level = 2 > defer_transports = > delay_warning_time = 1h > disable_dns_lookups = no > disable_mime_output_conversion = no > disable_vrfy_command = yes > header_checks = regexp:/etc/postfix/header_checks > html_directory = /usr/share/doc/packages/postfix-doc/html > inet_interfaces = all > inet_protocols = ipv4 > local_transport = local > mail_owner = postfix > mail_spool_directory = /var/spool/mail > mailbox_command = /usr/lib/dovecot/dovecot-lda > mailbox_size_limit = 0 > mailbox_transport = > mailq_path = /usr/bin/mailq > manpage_directory = /usr/share/man > masquerade_classes = envelope_sender, header_sender, header_recipient > masquerade_domains = > masquerade_exceptions = root > message_size_limit = 30240000 > message_strip_characters = \0 > mydestination = $mydomain > mydomain = mail2.mediaservice.net > myhostname = mail2.mediaservice.net > mynetworks = 127.0.0.1, 213.254.20.0/24, 192.168.1.0/24 > mynetworks_style = subnet > myorigin = $myhostname > newaliases_path = /usr/bin/newaliases > queue_directory = /var/spool/postfix > readme_directory = /usr/share/doc/packages/postfix-doc/README_FILES > recipient_delimiter = - > relay_domains = $mydestination, mediaservice.pri > relayhost = > relocated_maps = hash:/etc/postfix/relocated > sample_directory = /usr/share/doc/packages/postfix-doc/samples > sender_canonical_maps = hash:/etc/postfix/sender_canonical > sendmail_path = /usr/sbin/sendmail > setgid_group = maildrop > smtp_sasl_auth_enable = no > smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem > smtp_tls_cert_file = /etc/postfix/ssl/certs/postfixcert.pem > smtp_tls_key_file = /etc/postfix/ssl/certs/postfixkey.pem > smtp_tls_loglevel = 1 > smtp_use_tls = yes > smtpd_banner = $myhostname ESMTP > smtpd_client_restrictions = > smtpd_helo_required = no > smtpd_helo_restrictions = > smtpd_recipient_restrictions = check_recipient_access > hash:/etc/postfix/dspam_learning, permit_mynetworks, > permit_sasl_authenticated, reject_non_fqdn_sender, > reject_non_fqdn_recipient, > reject_unknown_recipient_domain, reject_unauth_pipelining, > reject_unauth_destination, check_policy_service > inet:127.0.0.1:10031 check_recipient_access > hash:/etc/postfix/dspam_domains > smtpd_sasl_auth_enable = yes > smtpd_sasl_path = private/auth > smtpd_sasl_security_options = noanonymous > smtpd_sasl_type = dovecot > smtpd_sender_restrictions = hash:/etc/postfix/access > smtpd_tls_CAfile = /etc/postfix/ssl/cacert_mauri.pem > smtpd_tls_CApath = /etc/postfix/ssl > smtpd_tls_auth_only = yes > smtpd_tls_cert_file = /etc/postfix/ssl/certs/postfixcert.pem > smtpd_tls_key_file = /etc/postfix/ssl/certs/postfixkey.pem > smtpd_tls_loglevel = 1 > smtpd_tls_received_header = yes > smtpd_use_tls = yes > strict_8bitmime = no > strict_rfc821_envelopes = no > tls_random_source = dev:/dev/urandom > transport_maps = hash:/etc/postfix/transport > unknown_local_recipient_reject_code = 550 > virtual_alias_domains = hash:/etc/postfix/virtual > virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf > virtual_gid_maps = static:51 > virtual_mailbox_base = /var/mail/virtual > virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf > virtual_mailbox_limit = 524288000 > virtual_mailbox_limit_maps = > mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf > virtual_mailbox_limit_override = yes > virtual_mailbox_maps = $transport_maps, > mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf > virtual_maildir_extended = yes > virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn > his diskspace \ quota, please try again later. > virtual_minimum_uid = 51 > virtual_overquota_bounce = yes > virtual_transport = dovecot > virtual_uid_maps = static:51 > > Need any other info? > Yes. How do you send mail to the retraining service? Over /etc/postfix/transport? If so then I need only the part of /etc/postfix/transport where you reroute the spam/ham messages to the DSPAM retraining service. > Thank you, > > Claudio. > -- Kind Regards from Switzerland, Stevan Bajić ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Dspam-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dspam-user
