E-MailRelay

gverifier.h
Go to the documentation of this file.
1//
2// Copyright (C) 2001-2021 Graeme Walker <graeme_walker@users.sourceforge.net>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16// ===
17///
18/// \file gverifier.h
19///
20
21#ifndef G_SMTP_VERIFIER_H
22#define G_SMTP_VERIFIER_H
23
24#include "gdef.h"
25#include "gverifierstatus.h"
26#include "gaddress.h"
27#include "gslot.h"
28#include "gexception.h"
29#include <string>
30
31 namespace GSmtp
32{
33 class Verifier ;
34}
35
36//| \class GSmtp::Verifier
37/// An asynchronous interface that verifies recipient 'to' addresses.
38/// This is used in the VRFY and RCPT commands in the smtp server
39/// protocol.
40/// \see GSmtp::ServerProtocol
41///
42 class GSmtp::Verifier
43{
44 public:
45 virtual void verify( const std::string & rcpt_to_parameter ,
46 const std::string & mail_from_parameter , const GNet::Address & client_ip ,
47 const std::string & auth_mechanism , const std::string & auth_extra ) = 0 ;
48 ///< Checks a recipient address and asynchronously returns a
49 ///< structure to indicate whether the address is a local
50 ///< mailbox, what the full name is, and the canonical address.
51 ///<
52 ///< The 'mail-from' address is passed in for RCPT commands, but
53 ///< not VRFY.
54
55 virtual G::Slot::Signal<const VerifierStatus&> & doneSignal() = 0 ;
56 ///< Returns a signal that is emit()ed when the verify() request
57 ///< is complete.
58
59 virtual void cancel() = 0 ;
60 ///< Aborts any current processing.
61
62 virtual ~Verifier() = default ;
63 ///< Destructor.
64} ;
65
66#endif
GNet::Address
The GNet::Address class encapsulates a TCP/UDP transport address.
Definition: gaddress.h:53
GSmtp::Verifier
An asynchronous interface that verifies recipient 'to' addresses.
Definition: gverifier.h:43
GSmtp::Verifier::doneSignal
virtual G::Slot::Signal< const VerifierStatus & > & doneSignal()=0
Returns a signal that is emit()ed when the verify() request is complete.
GSmtp::Verifier::verify
virtual void verify(const std::string &rcpt_to_parameter, const std::string &mail_from_parameter, const GNet::Address &client_ip, const std::string &auth_mechanism, const std::string &auth_extra)=0
Checks a recipient address and asynchronously returns a structure to indicate whether the address is ...
GSmtp::Verifier::~Verifier
virtual ~Verifier()=default
Destructor.
GSmtp::Verifier::cancel
virtual void cancel()=0
Aborts any current processing.
gaddress.h
gexception.h
gslot.h
gverifierstatus.h
GSmtp
SMTP and message-store classes.
Definition: gadminserver.h:39
G::Slot::Signal
A slot holder, with connect() and emit() methods.
Definition: gslot.h:157