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.
145 lines
4.0 KiB
145 lines
4.0 KiB
/* |
|
* kmail: KDE mail client |
|
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org> |
|
* |
|
* This program is free software; you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License as published by |
|
* the Free Software Foundation; either version 2 of the License, or |
|
* (at your option) any later version. |
|
* |
|
* This program 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 program; if not, write to the Free Software Foundation, Inc., |
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
*/ |
|
#ifndef kmsender_h |
|
#define kmsender_h |
|
#include "messagesender.h" |
|
|
|
#ifndef KDE_USE_FINAL |
|
# ifndef REALLY_WANT_KMSENDER |
|
# error Do not include kmsender.h, but messagesender.h. |
|
# endif |
|
#endif |
|
|
|
#include <QByteArray> |
|
#include <QString> |
|
#include <QStringList> |
|
#include <QMap> |
|
#include <QObject> |
|
#include <kdeversion.h> |
|
|
|
class KMMessage; |
|
class KMFolder; |
|
class KJob; |
|
|
|
namespace KPIM { |
|
class ProgressItem; |
|
} |
|
namespace MailTransport { |
|
class TransportJob; |
|
} |
|
|
|
class KMSender: public QObject, public KMail::MessageSender |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KMSender(); |
|
~KMSender(); |
|
|
|
protected: |
|
/** Send given message. The message is either queued or sent |
|
immediately. The default behaviour, as selected with |
|
setSendImmediate(), can be overwritten with the parameter |
|
sendNow (by specifying true or false). |
|
The sender takes ownership of the given message on success, |
|
so DO NOT DELETE OR MODIFY the message further. |
|
Returns true on success. */ |
|
bool doSend(KMMessage* msg, short sendNow); |
|
|
|
/** Send queued messages, using the specified transport or the |
|
* default, if none is given. |
|
*/ |
|
bool doSendQueued( const QString& transport=QString() ); |
|
|
|
private: |
|
/** Returns true if sending is in progress. */ |
|
bool sending() const { return mSendInProgress; } |
|
|
|
public: |
|
/** Shall messages be sent immediately (true), or shall they be |
|
queued and sent later upon call of sendQueued() ? */ |
|
bool sendImmediate() const { return mSendImmediate; } |
|
void setSendImmediate(bool); |
|
|
|
/** Shall messages be sent quoted-printable encoded. No encoding |
|
happens otherwise. */ |
|
bool sendQuotedPrintable() const { return mSendQuotedPrintable; } |
|
void setSendQuotedPrintable(bool); |
|
|
|
public: |
|
/** Read configuration from global config. */ |
|
void readConfig(); |
|
|
|
/** Write configuration to global config with optional sync() */ |
|
void writeConfig(bool withSync=true); |
|
|
|
private: |
|
/** sets a status msg and emits statusMsg() */ |
|
void setStatusMsg(const QString&); |
|
|
|
/** sets replied/forwarded status in the linked message for @p aMsg. */ |
|
void setStatusByLink(const KMMessage *aMsg); |
|
|
|
private slots: |
|
void slotResult( KJob* job ); |
|
|
|
/** This slot should be called when the mail sending progress changes. |
|
It updates the progressbar. */ |
|
void slotProcessedSize( KJob *job, qulonglong size ); |
|
|
|
/** abort sending of the current message */ |
|
void slotAbortSend(); |
|
|
|
/** note when a msg gets added to outbox during sending */ |
|
void outboxMsgAdded(int idx); |
|
|
|
private: |
|
/** handle sending of messages */ |
|
void doSendMsg(); |
|
|
|
/** cleanup after sending */ |
|
void cleanup(); |
|
|
|
/** Test if all required settings are set. |
|
Reports problems to user via dialogs and returns false. |
|
Returns true if everything is Ok. */ |
|
bool settingsOk() const; |
|
|
|
private: |
|
bool mSendImmediate; |
|
bool mSendQuotedPrintable; |
|
|
|
MailTransport::TransportJob* mTransportJob; |
|
|
|
QString mCustomTransport; |
|
bool mSentOk, mSendAborted; |
|
QString mErrorMsg; |
|
QString mMethodStr; |
|
bool mSendProcStarted; |
|
bool mSendInProgress; |
|
KMFolder *mOutboxFolder; |
|
KMFolder *mSentFolder; |
|
KMMessage * mCurrentMsg; |
|
KPIM::ProgressItem* mProgressItem; |
|
int mSentMessages, mTotalMessages; |
|
int mSentBytes, mTotalBytes; |
|
int mFailedMessages; |
|
}; |
|
|
|
#endif /*kmsender_h*/
|
|
|