You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
7.2 KiB
203 lines
7.2 KiB
15 years ago
|
/* -*- c++ -*-
|
||
|
kmime_mdn.h
|
||
|
|
||
|
This file is part of KMime, the KDE internet mail/usenet news message library.
|
||
|
Copyright (c) 2002 Marc Mutz <mutz@kde.org>
|
||
|
|
||
|
KMime is free software; you can redistribute it and/or modify it
|
||
|
under the terms of the GNU General Public License, version 2, as
|
||
|
published by the Free Software Foundation.
|
||
|
|
||
|
KMime is distributed in the hope that it will be useful, but
|
||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with this library; if not, write to the Free Software
|
||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||
|
|
||
|
In addition, as a special exception, the copyright holders give
|
||
|
permission to link the code of this library with any edition of
|
||
|
the Qt library by Trolltech AS, Norway (or with modified versions
|
||
|
of Qt that use the same license as Qt), and distribute linked
|
||
|
combinations including the two. You must obey the GNU General
|
||
|
Public License in all respects for all of the code used other than
|
||
|
Qt. If you modify this file, you may extend this exception to
|
||
|
your version of the file, but you are not obligated to do so. If
|
||
|
you do not wish to do so, delete this exception statement from
|
||
|
your version.
|
||
|
*/
|
||
|
|
||
|
#ifndef __KMIME_MDN_H__
|
||
|
#define __KMIME_MDN_H__
|
||
|
|
||
|
#include <qvaluelist.h>
|
||
|
#include <qstring.h>
|
||
|
|
||
|
#include <kdepimmacros.h>
|
||
|
|
||
|
class QCString;
|
||
|
|
||
|
namespace KMime {
|
||
|
|
||
|
namespace MDN {
|
||
|
|
||
|
/** The following disposition-types are defined:
|
||
|
|
||
|
@li Displayed The message has been displayed by the UA to someone
|
||
|
reading the recipient's mailbox. There is
|
||
|
no guarantee that the content has been
|
||
|
read or understood.
|
||
|
|
||
|
@li Dispatched The message has been sent somewhere in some manner
|
||
|
(e.g., printed, faxed, forwarded) without
|
||
|
necessarily having been previously
|
||
|
displayed to the user. The user may or
|
||
|
may not see the message later.
|
||
|
|
||
|
@li Processed The message has been processed in some manner (i.e.,
|
||
|
by some sort of rules or server) without
|
||
|
being displayed to the user. The user may
|
||
|
or may not see the message later, or there
|
||
|
may not even be a human user associated
|
||
|
with the mailbox.
|
||
|
|
||
|
@li Deleted The message has been deleted. The recipient may or
|
||
|
may not have seen the message. The
|
||
|
recipient might "undelete" the message at
|
||
|
a later time and read the message.
|
||
|
|
||
|
@li Denied The recipient does not wish the sender to be informed
|
||
|
of the message's disposition. A UA may
|
||
|
also siliently ignore message disposition
|
||
|
requests in this situation.
|
||
|
|
||
|
@li Failed A failure occurred that prevented the proper
|
||
|
generation of an MDN. More information
|
||
|
about the cause of the failure may be
|
||
|
contained in a Failure field. The
|
||
|
"failed" disposition type is not to be
|
||
|
used for the situation in which there is
|
||
|
is some problem in processing the message
|
||
|
other than interpreting the request for an
|
||
|
MDN. The "processed" or other disposition
|
||
|
type with appropriate disposition
|
||
|
modifiers is to be used in such
|
||
|
situations.
|
||
|
|
||
|
IOW: @p Displayed when - well -displayed
|
||
|
@p Dispatched when forwarding unseen ( == new )
|
||
|
@p Processed (maybe) when piping unseen, but probably never used
|
||
|
@p Deleted when deleting unseen
|
||
|
@p Denied on user command
|
||
|
@p Failed on Disposition-Notification-Options containing
|
||
|
unknown required options. ( == @em any required options )
|
||
|
@p Failed needs a description in the @p special parameter.
|
||
|
**/
|
||
|
enum DispositionType {
|
||
|
Displayed, Read = Displayed,
|
||
|
Deleted,
|
||
|
Dispatched, Forwarded = Dispatched,
|
||
|
Processed,
|
||
|
Denied,
|
||
|
Failed
|
||
|
};
|
||
|
/** The following disposition modifiers are defined:
|
||
|
|
||
|
@li Error An error of some sort occurred
|
||
|
that prevented successful
|
||
|
processing of the message.
|
||
|
Further information is contained
|
||
|
in an Error field.
|
||
|
|
||
|
@li Warning The message was successfully
|
||
|
processed but some sort of
|
||
|
exceptional condition occurred.
|
||
|
Further information is contained
|
||
|
in a Warning field.
|
||
|
|
||
|
@li Superseded The message has been
|
||
|
automatically rendered obsolete by
|
||
|
another message received. The
|
||
|
recipient may still access and
|
||
|
read the message later.
|
||
|
|
||
|
@li Expired The message has reached its
|
||
|
expiration date and has been
|
||
|
automatically removed from the
|
||
|
recipient's mailbox.
|
||
|
|
||
|
@li MailboxTerminated The recipient's mailbox has been
|
||
|
terminated and all message in it
|
||
|
automatically removed.
|
||
|
**/
|
||
|
enum DispositionModifier {
|
||
|
Error,
|
||
|
Warning,
|
||
|
Superseded,
|
||
|
Expired,
|
||
|
MailboxTerminated
|
||
|
};
|
||
|
\
|
||
|
/** The following disposition modes are defined:
|
||
|
|
||
|
@li ManualAction The disposition described by the disposition type
|
||
|
was a result of an explicit instruction by
|
||
|
the user rather than some sort of
|
||
|
automatically performed action.
|
||
|
|
||
|
@li AutomaticAction The disposition described by the disposition
|
||
|
type was a result of an automatic action,
|
||
|
rather than an explicit instruction by the
|
||
|
user for this message.
|
||
|
|
||
|
IOW: @p ManualAction for user-driven actions,
|
||
|
@p AutomanticAction for filtering.
|
||
|
**/
|
||
|
enum ActionMode {
|
||
|
ManualAction,
|
||
|
AutomaticAction
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@li SentManually The user explicitly gave permission for this
|
||
|
particular MDN to be sent.
|
||
|
|
||
|
@li SentAutomatically The MDN was sent because the MUA had
|
||
|
previously been configured to do so
|
||
|
automatically.
|
||
|
|
||
|
IOW: @p SentManually for when we have asked the user
|
||
|
@p SentAutomatically when we use the default specified by the user
|
||
|
**/
|
||
|
enum SendingMode {
|
||
|
SentManually,
|
||
|
SentAutomatically
|
||
|
};
|
||
|
|
||
|
/** Main function. Generates the content of the
|
||
|
message/disposition-notification body part. */
|
||
|
KDE_EXPORT extern QCString dispositionNotificationBodyContent( const QString & finalRecipient,
|
||
|
const QCString & originalRecipient,
|
||
|
const QCString & originalMsgID,
|
||
|
DispositionType disposition,
|
||
|
ActionMode actionMode,
|
||
|
SendingMode sendingMode,
|
||
|
const QValueList<DispositionModifier> & dispositionModifers
|
||
|
=QValueList<DispositionModifier>(),
|
||
|
const QString & special=QString::null );
|
||
|
|
||
|
KDE_EXPORT extern QString descriptionFor( DispositionType d,
|
||
|
const QValueList<DispositionModifier> & m
|
||
|
=QValueList<DispositionModifier>() );
|
||
|
|
||
|
enum ReturnContent { Nothing, All, HeadersOnly };
|
||
|
|
||
|
|
||
|
} // namespace MDN
|
||
|
|
||
|
} // namespace KMime
|
||
|
|
||
|
#endif // __KMIME_MDN_H__
|