kio Library API Documentation

smtp.h

00001 /* $Id: smtp.h,v 1.4 2003/08/13 19:47:46 mueller Exp $ */ 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
KDE Logo
This file is part of the documentation for kio Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 14 00:20:33 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003