• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kio

smtp.h

Go to the documentation of this file.
00001 /* $Id: smtp.h 242555 2003-08-13 19:47:47Z mueller $ */
00002 
00003 #ifndef SMTP_H
00004 #define SMTP_H
00005 
00006 #include <qobject.h>
00007 #include <qtimer.h>
00008 #include <ksock.h>
00009 
00010 /*int SMTPServerStatus[] = {
00011     220,  // greeting from server
00012     221,  // server acknolages goodbye
00013     250,  // command successful
00014     354,  // ready to receive data
00015     501,  // error
00016     550,  // user unknown
00017     0     // null
00018 };
00019 
00020 int SMTPClientStatus[] = {
00021     50,   // not logged in yet.
00022     100,  // logged in, got 220
00023     150,  // sent helo, got 250
00024     200,  // sent mail from, got 250
00025     250,  // sent rctp to, got 250
00026     300,  // data sent, got 354
00027     350,  // sent data/., got 250
00028     400,  // send quit, got 221
00029     450,  // finished, logged out
00030     0     // null
00031 };
00032 */
00033 
00034 #define DEFAULT_SMTP_PORT 25
00035 #define DEFAULT_SMTP_SERVER localhost
00036 #define DEFAULT_SMTP_TIMEOUT 60
00037 
00038 #define SMTP_READ_BUFFER_SIZE 256
00039 
00040 class SMTP:public QObject
00041 {
00042     Q_OBJECT
00043 public:
00044     SMTP(char *serverhost = 0, unsigned short int port = 0, int timeout = DEFAULT_SMTP_TIMEOUT);
00045     ~SMTP();
00046 
00047     void setServerHost(const QString& serverhost);
00048     void setPort(unsigned short int port);
00049     void setTimeOut(int timeout);
00050 
00051     bool isConnected(){return connected;};
00052     bool isFinished(){return finished;};
00053     QString getLastLine(){return lastLine;};
00054 
00055     void setSenderAddress(const QString& sender);
00056     void setRecipientAddress(const QString& recipient);
00057     void setMessageSubject(const QString& subject);
00058     void setMessageBody(const QString& message);
00059     void setMessageHeader(const QString &header);
00060 
00061     typedef enum {
00062         NONE = 0,             // null
00063         GREET = 220,          // greeting from server
00064         GOODBYE = 221,        // server acknolages quit
00065         SUCCESSFUL = 250,     // command successful
00066         READYDATA = 354,      // server ready to receive data
00067         ERROR = 501,          // error
00068         UNKNOWN = 550        // user unknown
00069     }SMTPServerStatus;
00070 
00071     typedef enum {
00072         INIT = 50,            // not logged in yet
00073         IN = 100,             // logged in, got 220
00074         READY = 150,          // sent HELO, got 250
00075         SENTFROM = 200,       // sent MAIL FROM:, got 250
00076         SENTTO = 250,         // sent RCTP TO:, got 250
00077         DATA = 300,           // DATA sent, got 354
00078         FINISHED = 350,       // finished sending data, got 250
00079         QUIT = 400,           // sent QUIT, got 221
00080         OUT = 450,            // finished, logged out
00081         CERROR = 500           // didn't finish, had error or connection drop
00082     }SMTPClientStatus;
00083 
00084     typedef enum {
00085         NOERROR = 0,
00086         CONNECTERROR = 10,
00087         NOTCONNECTED = 11,
00088         CONNECTTIMEOUT = 15,
00089         INTERACTTIMEOUT = 16,
00090         UNKNOWNRESPONSE = 20,
00091         UNKNOWNUSER = 30,
00092         COMMAND = 40
00093     }SMTPError;
00094 
00095 protected:
00096     void processLine(QString *line);
00097 
00098 public slots:
00099     void openConnection();
00100     void sendMessage();
00101     void closeConnection();
00102 
00103     void connectTimerTick();
00104     void connectTimedOut();
00105     void interactTimedOut();
00106 
00107     void socketRead(KSocket *);
00108     void socketClose(KSocket *);
00109 
00110 signals:
00111     void connectionClosed();
00112     void messageSent();
00113     void error(int);
00114 
00115 private:
00116     QString serverHost;
00117     unsigned short int hostPort;
00118     int timeOut;
00119 
00120     bool connected;
00121     bool finished;
00122 
00123     QString senderAddress;
00124     QString recipientAddress;
00125     QString messageSubject;
00126     QString messageBody, messageHeader;
00127 
00128     SMTPClientStatus state;
00129     SMTPClientStatus lastState;
00130     SMTPServerStatus serverState;
00131 
00132     QString domainName;
00133 
00134     KSocket *sock;
00135     QTimer connectTimer;
00136     QTimer timeOutTimer;
00137     QTimer interactTimer;
00138 
00139     char readBuffer[SMTP_READ_BUFFER_SIZE];
00140     QString lineBuffer;
00141     QString lastLine;
00142     QString writeString;
00143 };
00144 #endif

kio

Skip menu "kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal