summaryrefslogtreecommitdiffstats
path: root/libkmime/kmime_mdn.h
diff options
context:
space:
mode:
Diffstat (limited to 'libkmime/kmime_mdn.h')
-rw-r--r--libkmime/kmime_mdn.h202
1 files changed, 202 insertions, 0 deletions
diff --git a/libkmime/kmime_mdn.h b/libkmime/kmime_mdn.h
new file mode 100644
index 00000000..2fd76e6d
--- /dev/null
+++ b/libkmime/kmime_mdn.h
@@ -0,0 +1,202 @@
+/* -*- 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__