Commit patch by Jan Callewaert <jan.callewaert@gmail.com> (with slight

modifications to make it compile against 4.0) which makes the 'mark as
ham' action run spamassassin -d to remove SA's verbose headers. Thanks,
Jan.

Andreas, did you want this in branch as well?
CCMAIL: agungl@kde.org
CCMAIL: 94577@bugs.kde.org

svn path=/trunk/KDE/kdepim/; revision=505000
wilder-work
Till Adam 20 years ago
parent af57d9a960
commit 42d8b0d2fd
  1. 28
      antispamwizard.cpp
  2. 12
      antispamwizard.h
  3. 6
      kmail.antispamrc

@ -421,7 +421,17 @@ void AntiSpamWizard::accept()
classHamFilterActions->append( classHamFilterAction ); classHamFilterActions->append( classHamFilterAction );
} }
} }
KMSearchPattern* classHamFilterPattern = classHamFilter->pattern(); for ( QList<SpamToolConfig>::iterator it = mToolList.begin();
it != mToolList.end(); ++it ) {
if ( mInfoPage->isProgramSelected( (*it).getVisibleName() )
&& (*it).useBayesFilter() && !(*it).isDetectionOnly() )
{
KMFilterAction* classHamFilterAction = dict.value( "filter app" )->create();
classHamFilterAction->argsFromString( (*it).getNoSpamCmd() );
classHamFilterActions->append( classHamFilterAction );
}
}
KMSearchPattern* classHamFilterPattern = classHamFilter->pattern();
if ( replaceExistingFilters ) if ( replaceExistingFilters )
classHamFilterPattern->setName( i18n( "Classify as NOT spam" ) ); classHamFilterPattern->setName( i18n( "Classify as NOT spam" ) );
else else
@ -654,15 +664,15 @@ void AntiSpamWizard::sortFilterOnExistance(
AntiSpamWizard::SpamToolConfig::SpamToolConfig( QString toolId, AntiSpamWizard::SpamToolConfig::SpamToolConfig( QString toolId,
int configVersion, int prio, QString name, QString exec, int configVersion, int prio, QString name, QString exec,
QString url, QString filter, QString detection, QString spam, QString ham, QString url, QString filter, QString detection, QString spam, QString ham,
QString header, QString pattern, QString pattern2, QString serverPattern, QString noSpam, QString header, QString pattern, QString pattern2,
bool detectionOnly, bool regExp, bool bayesFilter, bool tristateDetection, QString serverPattern, bool detectionOnly, bool regExp, bool bayesFilter,
WizardMode type ) bool tristateDetection, WizardMode type )
: mId( toolId ), mVersion( configVersion ), mPrio( prio ), : mId( toolId ), mVersion( configVersion ), mPrio( prio ),
mVisibleName( name ), mExecutable( exec ), mWhatsThisText( url ), mVisibleName( name ), mExecutable( exec ), mWhatsThisText( url ),
mFilterName( filter ), mDetectCmd( detection ), mSpamCmd( spam ), mFilterName( filter ), mDetectCmd( detection ), mSpamCmd( spam ),
mHamCmd( ham ), mDetectionHeader( header ), mDetectionPattern( pattern ), mHamCmd( ham ), mNoSpamCmd( noSpam ), mDetectionHeader( header ),
mDetectionPattern2( pattern2 ), mServerPattern( serverPattern ), mDetectionPattern( pattern ), mDetectionPattern2( pattern2 ),
mDetectionOnly( detectionOnly ), mServerPattern( serverPattern ), mDetectionOnly( detectionOnly ),
mUseRegExp( regExp ), mSupportsBayesFilter( bayesFilter ), mUseRegExp( regExp ), mSupportsBayesFilter( bayesFilter ),
mSupportsUnsure( tristateDetection ), mType( type ) mSupportsUnsure( tristateDetection ), mType( type )
{ {
@ -748,6 +758,7 @@ AntiSpamWizard::SpamToolConfig
QString detectCmd = configGroup.readEntry( "PipeCmdDetect" ); QString detectCmd = configGroup.readEntry( "PipeCmdDetect" );
QString spamCmd = configGroup.readEntry( "ExecCmdSpam" ); QString spamCmd = configGroup.readEntry( "ExecCmdSpam" );
QString hamCmd = configGroup.readEntry( "ExecCmdHam" ); QString hamCmd = configGroup.readEntry( "ExecCmdHam" );
QString noSpamCmd = configGroup.readEntry( "PipeCmdNoSpam" );
QString header = configGroup.readEntry( "DetectionHeader" ); QString header = configGroup.readEntry( "DetectionHeader" );
QString pattern = configGroup.readEntry( "DetectionPattern" ); QString pattern = configGroup.readEntry( "DetectionPattern" );
QString pattern2 = configGroup.readEntry( "DetectionPattern2" ); QString pattern2 = configGroup.readEntry( "DetectionPattern2" );
@ -757,7 +768,7 @@ AntiSpamWizard::SpamToolConfig
bool supportsBayes = configGroup.readEntry( "SupportsBayes", false ); bool supportsBayes = configGroup.readEntry( "SupportsBayes", false );
bool supportsUnsure = configGroup.readEntry( "SupportsUnsure", false ); bool supportsUnsure = configGroup.readEntry( "SupportsUnsure", false );
return SpamToolConfig( id, version, prio, name, executable, url, return SpamToolConfig( id, version, prio, name, executable, url,
filterName, detectCmd, spamCmd, hamCmd, filterName, detectCmd, spamCmd, hamCmd, noSpamCmd,
header, pattern, pattern2, serverPattern, header, pattern, pattern2, serverPattern,
detectionOnly, useRegExp, detectionOnly, useRegExp,
supportsBayes, supportsUnsure, mMode ); supportsBayes, supportsUnsure, mMode );
@ -772,6 +783,7 @@ AntiSpamWizard::SpamToolConfig AntiSpamWizard::ConfigReader::createDummyConfig()
"spamassassin -L", "spamassassin -L",
"sa-learn -L --spam --no-rebuild --single", "sa-learn -L --spam --no-rebuild --single",
"sa-learn -L --ham --no-rebuild --single", "sa-learn -L --ham --no-rebuild --single",
"spamassassin -d",
"X-Spam-Flag", "yes", "", "", "X-Spam-Flag", "yes", "", "",
false, false, true, false, AntiSpam ); false, false, true, false, AntiSpam );
} }

@ -91,7 +91,8 @@ namespace KMail {
PipeCmdDetect=spamassassin -L PipeCmdDetect=spamassassin -L
ExecCmdSpam=sa-learn --spam --no-rebuild --single ExecCmdSpam=sa-learn --spam --no-rebuild --single
ExecCmdHam=sa-learn --ham --no-rebuild --single ExecCmdHam=sa-learn --ham --no-rebuild --single
DetectionHeader=X-Spam-Flag PipeCmdNoSpam=spamassassin -d
DetectionHeader=X-Spam-Flag
DetectionPattern=yes DetectionPattern=yes
DetectionPattern2= DetectionPattern2=
DetectionOnly=0 DetectionOnly=0
@ -139,8 +140,8 @@ namespace KMail {
SpamToolConfig( QString toolId, int configVersion, int prio, SpamToolConfig( QString toolId, int configVersion, int prio,
QString name, QString exec, QString url, QString filter, QString name, QString exec, QString url, QString filter,
QString detection, QString spam, QString ham, QString detection, QString spam, QString ham,
QString header, QString pattern, QString pattern2, QString noSpam, QString header, QString pattern,
QString serverPattern, QString pattern2, QString serverPattern,
bool detectionOnly, bool regExp, bool bayesFilter, bool detectionOnly, bool regExp, bool bayesFilter,
bool tristateDetection, WizardMode type ); bool tristateDetection, WizardMode type );
@ -154,6 +155,7 @@ namespace KMail {
QString getDetectCmd() const { return mDetectCmd; } QString getDetectCmd() const { return mDetectCmd; }
QString getSpamCmd() const { return mSpamCmd; } QString getSpamCmd() const { return mSpamCmd; }
QString getHamCmd() const { return mHamCmd; } QString getHamCmd() const { return mHamCmd; }
QString getNoSpamCmd() const { return mNoSpamCmd; }
QString getDetectionHeader() const { return mDetectionHeader; } QString getDetectionHeader() const { return mDetectionHeader; }
QString getDetectionPattern() const { return mDetectionPattern; } QString getDetectionPattern() const { return mDetectionPattern; }
QString getDetectionPattern2() const { return mDetectionPattern2; } QString getDetectionPattern2() const { return mDetectionPattern2; }
@ -190,7 +192,9 @@ namespace KMail {
QString mSpamCmd; QString mSpamCmd;
// pipe through cmd to let the tool learn a ham message // pipe through cmd to let the tool learn a ham message
QString mHamCmd; QString mHamCmd;
// by which header are messages marked as spam // pipe through cmd to let the tool delete the spam markup
QString mNoSpamCmd;
// by which header are messages marked as spam
QString mDetectionHeader; QString mDetectionHeader;
// what header pattern is used to mark spam messages // what header pattern is used to mark spam messages
QString mDetectionPattern; QString mDetectionPattern;

@ -12,6 +12,7 @@ PipeFilterName=SpamAssassin Check
PipeCmdDetect=spamassassin -L PipeCmdDetect=spamassassin -L
ExecCmdSpam=sa-learn -L --spam --no-rebuild --single ExecCmdSpam=sa-learn -L --spam --no-rebuild --single
ExecCmdHam=sa-learn -L --ham --no-rebuild --single ExecCmdHam=sa-learn -L --ham --no-rebuild --single
PipeCmdNoSpam=spamassassin -d
DetectionHeader=X-Spam-Flag DetectionHeader=X-Spam-Flag
DetectionPattern=yes DetectionPattern=yes
DetectionPattern2= DetectionPattern2=
@ -36,6 +37,7 @@ PipeFilterName=Bogofilter Check
PipeCmdDetect=bogofilter -p -e -u PipeCmdDetect=bogofilter -p -e -u
ExecCmdSpam=bogofilter -N -s ExecCmdSpam=bogofilter -N -s
ExecCmdHam=bogofilter -S -n ExecCmdHam=bogofilter -S -n
PipeCmdNoSpam=
DetectionHeader=X-Bogosity DetectionHeader=X-Bogosity
DetectionPattern=(yes)|(spam\b) DetectionPattern=(yes)|(spam\b)
DetectionPattern2= DetectionPattern2=
@ -60,6 +62,7 @@ PipeFilterName=Annoyance-Filter Check
PipeCmdDetect=$HOME/.annoyance-filter/annoyance-filter --fread $HOME/.annoyance-filter/FastDict.bin --phrasemin 1 --phrasemax 2 --transcript - --test - PipeCmdDetect=$HOME/.annoyance-filter/annoyance-filter --fread $HOME/.annoyance-filter/FastDict.bin --phrasemin 1 --phrasemax 2 --transcript - --test -
ExecCmdSpam=$HOME/.annoyance-filter/annoyance-filter --read $HOME/.annoyance-filter/Dict.bin --phrasemin 1 --phrasemax 2 --junk - --prune --write $HOME/.annoyance-filter/Dict.bin --fwrite $HOME/.annoyance-filter/FastDict.bin ExecCmdSpam=$HOME/.annoyance-filter/annoyance-filter --read $HOME/.annoyance-filter/Dict.bin --phrasemin 1 --phrasemax 2 --junk - --prune --write $HOME/.annoyance-filter/Dict.bin --fwrite $HOME/.annoyance-filter/FastDict.bin
ExecCmdHam=$HOME/.annoyance-filter/annoyance-filter --read $HOME/.annoyance-filter/Dict.bin --phrasemin 1 --phrasemax 2 --mail - --prune --write $HOME/.annoyance-filter/Dict.bin --fwrite $HOME/.annoyance-filter/FastDict.bin ExecCmdHam=$HOME/.annoyance-filter/annoyance-filter --read $HOME/.annoyance-filter/Dict.bin --phrasemin 1 --phrasemax 2 --mail - --prune --write $HOME/.annoyance-filter/Dict.bin --fwrite $HOME/.annoyance-filter/FastDict.bin
PipeCmdNoSpam=
DetectionHeader=X-Annoyance-Filter-Classification DetectionHeader=X-Annoyance-Filter-Classification
DetectionPattern=Junk DetectionPattern=Junk
DetectionPattern2= DetectionPattern2=
@ -79,6 +82,7 @@ PipeFilterName=
PipeCmdDetect= PipeCmdDetect=
ExecCmdSpam= ExecCmdSpam=
ExecCmdHam= ExecCmdHam=
PipeCmdNoSpam=
DetectionHeader=X-GMX-Antispam DetectionHeader=X-GMX-Antispam
DetectionPattern=^[2345] DetectionPattern=^[2345]
DetectionPattern2= DetectionPattern2=
@ -126,6 +130,7 @@ PipeFilterName=SpamAssassin Service Check
PipeCmdDetect=spamc PipeCmdDetect=spamc
ExecCmdSpam=sa-learn -L --spam --no-rebuild --single ExecCmdSpam=sa-learn -L --spam --no-rebuild --single
ExecCmdHam=sa-learn -L --ham --no-rebuild --single ExecCmdHam=sa-learn -L --ham --no-rebuild --single
PipeCmdNoSpam=spamassassin -d
DetectionHeader=X-Spam-Flag DetectionHeader=X-Spam-Flag
DetectionPattern=yes DetectionPattern=yes
DetectionPattern2= DetectionPattern2=
@ -150,6 +155,7 @@ PipeFilterName=SpamAssassin Check
PipeCmdDetect=spamassassin -L PipeCmdDetect=spamassassin -L
ExecCmdSpam=sa-learn -L --spam --no-sync ExecCmdSpam=sa-learn -L --spam --no-sync
ExecCmdHam=sa-learn -L --ham --no-sync ExecCmdHam=sa-learn -L --ham --no-sync
PipeCmdNoSpam=spamassassin -d
DetectionHeader=X-Spam-Flag DetectionHeader=X-Spam-Flag
DetectionPattern=yes DetectionPattern=yes
DetectionPattern2= DetectionPattern2=

Loading…
Cancel
Save