Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 3 / 6-7.tar / 6-7 / 6-7 / net_mail / mail

.h
Скачиваний:
14
Добавлен:
17.04.2013
Размер:
1.49 Кб
Скачать
#ifndef _MAIL_H
#define _MAIL_H

#include <qstring.h>

class NMessage{
public:
	QString from;
	QString to;
	QString subject;
	time_t time;
	QString date;
	QString header;
	QString content;
	QString msg_id;
	int folder; /* inbox, outbox */

	QString attach_name;
	QString attach_data;
};

#define CMD_USER "USER"
#define CMD_PASS "PASS"
#define CMD_NOOP "NOOP"
#define CMD_QUIT "QUIT"
#define CMD_STAT "STAT"
#define CMD_LIST "LIST"
#define CMD_RETR "RETR"

#define FLDR_INBOX 0
#define FLDR_OUTBOX 1
#define FLDR_SENT 2

class NMail{
protected:
	int smtp_sd, pop_sd;
	QString smtp_server;
	int smtp_port;
	QString pop_server;
	int pop_port;
	QString username;
	QString password;
	void **msgs;
	size_t msg_count, msg_size;
	
	int exec_pop_cmd(const char *cmd, const char *params, char **reply);
	int exec_smtp_cmd(const char *cmd);
	int should_wait(const char *cmd, const char *params, char *reply, size_t count);

	int connectPServer();
	int authPServer();
	int recvMessages();
	int closePServer();

	int connectSServer();
	int sendMessages();
	int closeSServer();
	
	char *buffer;
	size_t buffer_size;

public:
	NMail();
	
	void setParams(QString psmtp_server, QString ppop_server, 
			QString pusername, QString ppassword);
	
	void insertMessage(NMessage *nmsg);
	void removeMessage(size_t ps_index, int folder);
	NMessage *getMessage(size_t ps_index, int folder);
	int find_msg(QString msg_id);
	size_t getCount(int folder);
	
	void checkMail();
	void sendMail();
};

#endif /* _MAIL_H */
Соседние файлы в папке net_mail