Messagelib

spamheaderanalyzer.h
1 /*
2  spamheaderanalyzer.h
3 
4  This file is part of KMail, the KDE mail client.
5  SPDX-FileCopyrightText: 2004 Patrick Audley <[email protected]>
6  SPDX-FileCopyrightText: 2004 Ingo Kloecker <[email protected]>
7 
8  SPDX-License-Identifier: GPL-2.0-or-later
9 */
10 
11 #pragma once
12 
13 #include <QList>
14 #include <QString>
15 namespace KMime
16 {
17 class Message;
18 }
19 namespace MessageViewer
20 {
21 enum SpamError {
22  noError,
23  uninitializedStructUsed,
24  errorExtractingAgentString,
25  couldNotConverScoreToFloat,
26  couldNotConvertThresholdToFloatOrThresholdIsNegative,
27  couldNotFindTheScoreField,
28  couldNotFindTheThresholdField,
29  couldNotConvertConfidenceToFloat
30 };
31 
32 /**
33  @short A simple tuple of error, agent, score, confidence and header.
34 
35  The score returned is positive if no error has occurred.
36  error values indicate the following errors:
37  noError Spam Headers successfully parsed
38  uninitializedStructUsed Uninitialized struct used
39  errorExtractingAgentString Error extracting agent string
40  couldNotConverScoreToFloat Couldn't convert score to float
41  couldNotConvertThresholdToFloatOrThresholdIsNegative Couldn't convert threshold to float or threshold is negative
42  couldNotFindTheScoreField Couldn't find the score field
43  couldNotFindTheThresholdField Couldn't find the threshold field
44  couldNotConvertConfidenceToFloat Couldn't convert confidence to float
45 */
46 class SpamScore
47 {
48 public:
49  SpamScore()
50  : mError(noError)
51  , mScore(-2.0)
52  , mConfidence(-2.0)
53  {
54  }
55 
56  SpamScore(const QString &agent, SpamError error, float score, float confidence, const QString &header, const QString &cheader)
57  : mAgent(agent)
58  , mError(error)
59  , mScore(score)
60  , mConfidence(confidence)
61  , mHeader(header)
62  , mConfidenceHeader(cheader)
63  {
64  }
65 
66  [[nodiscard]] QString agent() const
67  {
68  return mAgent;
69  }
70 
71  [[nodiscard]] float score() const
72  {
73  return mScore;
74  }
75 
76  [[nodiscard]] float confidence() const
77  {
78  return mConfidence;
79  }
80 
81  [[nodiscard]] SpamError error() const
82  {
83  return mError;
84  }
85 
86  [[nodiscard]] QString spamHeader() const
87  {
88  return mHeader;
89  }
90 
91  [[nodiscard]] QString confidenceHeader() const
92  {
93  return mConfidenceHeader;
94  }
95 
96 private:
97  QString mAgent;
98  SpamError mError;
99  float mScore;
100  float mConfidence;
101  QString mHeader;
102  QString mConfidenceHeader;
103 };
105 
106 /**
107  @short Flyweight for analysing spam headers.
108  @author Patrick Audley <[email protected]>
109  */
111 {
112 public:
113  /**
114  @short Extract scores from known anti-spam headers
115  @param message A KMime::Message to examine
116  @return A list of detected scores. See SpamScore
117  */
119 };
120 }
Flyweight for analysing spam headers.
static SpamScores getSpamScores(KMime::Message *message)
Extract scores from known anti-spam headers.
A simple tuple of error, agent, score, confidence and header.
QString message
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Dec 5 2023 04:03:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.