• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

kmail

  • sources
  • kde-4.14
  • kdepim
  • kmail
  • editor
  • potentialphishingemail
potentialphishingemailjob.cpp
Go to the documentation of this file.
1 /*
2  Copyright (c) 2015 Montel Laurent <montel@kde.org>
3 
4  This library is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or (at your
7  option) any later version.
8 
9  This library is distributed in the hope that it will be useful, but WITHOUT
10  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12  License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to the
16  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  02110-1301, USA.
18 
19 */
20 
21 #include "potentialphishingemailjob.h"
22 #include <KPIMUtils/Email>
23 #include <QDebug>
24 PotentialPhishingEmailJob::PotentialPhishingEmailJob(QObject *parent)
25  : QObject(parent)
26 {
27 
28 }
29 
30 PotentialPhishingEmailJob::~PotentialPhishingEmailJob()
31 {
32 
33 }
34 
35 void PotentialPhishingEmailJob::setEmailWhiteList(const QStringList &emails)
36 {
37  mEmailWhiteList = emails;
38 }
39 
40 void PotentialPhishingEmailJob::setEmails(const QStringList &emails)
41 {
42  mEmails = emails;
43 }
44 
45 QStringList PotentialPhishingEmailJob::potentialPhisingEmails() const
46 {
47  return mPotentialPhisingEmails;
48 }
49 
50 bool PotentialPhishingEmailJob::start()
51 {
52  mPotentialPhisingEmails.clear();
53  if (mEmails.isEmpty()) {
54  deleteLater();
55  return false;
56  }
57  Q_FOREACH(const QString &addr, mEmails) {
58  if (!mEmailWhiteList.contains(addr.trimmed())) {
59  QString tname, temail;
60  KPIMUtils::extractEmailAddressAndName( addr, temail, tname ); // ignore return value
61  // which is always false
62  if (tname.contains(QLatin1String("@"))) { //Potential address
63  if (tname.startsWith(QLatin1Char('<')) && tname.endsWith(QLatin1Char('>'))) {
64  tname = tname.mid(1,tname.length()-2);
65  }
66  if (temail.toLower() != tname.toLower()) {
67  const QString str = QString::fromLatin1("(%1)").arg(temail);
68  if (!tname.contains(str, Qt::CaseInsensitive)) {
69  mPotentialPhisingEmails.append(addr);
70  }
71  }
72  }
73  }
74  }
75  Q_EMIT potentialPhishingEmailsFound(mPotentialPhisingEmails);
76  deleteLater();
77  return true;
78 }
QList::clear
void clear()
PotentialPhishingEmailJob::PotentialPhishingEmailJob
PotentialPhishingEmailJob(QObject *parent=0)
Definition: potentialphishingemailjob.cpp:24
PotentialPhishingEmailJob::potentialPhisingEmails
QStringList potentialPhisingEmails() const
Definition: potentialphishingemailjob.cpp:45
potentialphishingemailjob.h
PotentialPhishingEmailJob::start
bool start()
Definition: potentialphishingemailjob.cpp:50
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
PotentialPhishingEmailJob::setEmailWhiteList
void setEmailWhiteList(const QStringList &emails)
Definition: potentialphishingemailjob.cpp:35
PotentialPhishingEmailJob::~PotentialPhishingEmailJob
~PotentialPhishingEmailJob()
Definition: potentialphishingemailjob.cpp:30
QList::append
void append(const T &value)
QObject
QList::isEmpty
bool isEmpty() const
QString::trimmed
QString trimmed() const
QString::startsWith
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
QString::endsWith
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
QObject::deleteLater
void deleteLater()
QString
QStringList
QString::toLower
QString toLower() const
QString::contains
bool contains(QChar ch, Qt::CaseSensitivity cs) const
PotentialPhishingEmailJob::setEmails
void setEmails(const QStringList &emails)
Definition: potentialphishingemailjob.cpp:40
QLatin1Char
QString::mid
QString mid(int position, int n) const
QLatin1String
QString::length
int length() const
QString::fromLatin1
QString fromLatin1(const char *str, int size)
PotentialPhishingEmailJob::potentialPhishingEmailsFound
void potentialPhishingEmailsFound(const QStringList &emails)
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:34:33 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kmail

Skip menu "kmail"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal