/*************************************************************************************** File: smtp_client.h Date: 9.8.2002 Version: 0.1 Author: Jari Lahti (jari@violasystems.com) Description: This file contains SMTP E-mail client implementation constants, prototypes and structure Version Info: 9.8.2002 - First version (JaL) ***************************************************************************************/ #ifndef INCLUDE_SMTP_CLIENT_H #define INCLUDE_SMTP_CLIENT_H #include "datatypes.h" /* SMTPC timeout */ #define SMTPC_TOUT 20 /* In secs */ /* States of SMTP state machine */ #define SMTP_UNINITIALIZED 1 /* Not initialized yet */ #define SMTP_CLOSED 2 /* TCP connection closed */ #define SMTP_OPEN_REQUESTED 3 /* User has requested mail read */ #define SMTP_CONNECTIONOPEN_SENT 4 /* TCP connection request sent */ #define SMTP_CONNECTION_OPENED 5 /* TCP Connection opened */ #define SMTP_SERVER_READY 6 /* SMTP server has indicated 220 */ #define SMTP_HELO_SENT 7 /* HELO sent by us */ #define SMTP_HELO_ACKED 8 /* Server has acked HELO by 250 */ #define SMTP_MAILFROM_SENT 9 /* MAIL FROM sent by us */ #define SMTP_MAILFROM_ACKED 10 /* Server has acked MAIL FROM by 250 */ #define SMTP_RCPTTO_SENT 11 /* RCPT To sent by us */ #define SMTP_RCPTTO_ACKED 12 /* Server has acked RCPT TO by 250 */ #define SMTP_DATAREQ_SENT 13 /* DATA sent by us */ #define SMTP_DATAREQ_ACKED 14 /* Server has acked DATA by 354 */ #define SMTP_BODY_SENT 15 /* We have sent RFC822 body */ #define SMTP_SENDING_DATA 16 /* We are sending data... */ #define SMTP_DATAEND_REACHED 17 /* We have no more data */ #define SMTP_DATAEND_SENT 18 /* CRLF.CRLF sent by us */ #define SMTP_DATAEND_ACKED 19 /* Server has acked CRLF.CRLF by 250 */ #define SMTP_QUIT_SENT 20 /* QUIT sent by us */ #define SMTP_QUIT_ACKED 21 /* Server has acked quit by 221 */ /* SMTP Server replies */ #define SMTP_CMD_SERVER_READY '2' + '2' + '0' /* Server outputs when connected */ #define SMTP_CMD_OK '2' + '5' + '0' /* Command executed OK */ #define SMTP_CMD_DATAOK '3' + '5' + '4' /* OK to send data */ #define SMTP_CMD_QUITOK '2' + '2' + '1' /* OK to quit, close connection */ /* Function prototypes (internal) */ INT8 smtpc_connect(UINT32, UINT16); void smtpc_init(void); INT32 smtpc_eventlistener(INT8, UINT8, UINT32, UINT32); void smtpc_run(void); UINT8 smtpc_getstate(void); void smtpc_sendhelo(void); void smtpc_sendmailfrom(void); void smtpc_sendrcptto(void); void smtpc_senddatareq(void); void smtpc_sendbody(void); void smtpc_senddataend(void); void smtpc_sendquit(void); INT16 smtpc_senddata(void); void smtpc_changestate(UINT8); /* Function prototypes (callbacks) */ UINT32 smtpc_getserverIP(void); INT8 smtpc_getdomain(UINT8*); INT8 smtpc_getsender(UINT8*); INT8 smtpc_getreceiver(UINT8*); INT8 smtpc_getsubject(UINT8*); INT16 smtpc_getdata(UINT8*, UINT16); void smtpc_dataacked(void); void smtpc_error(void); void smtpc_allok(void); #endif