Annotation of parser3/src/lib/smtp/smtp.h, revision 1.2
1.1 paf 1: /** @file
2: Parser: SMTP sender decl.
3:
1.2 ! paf 4: Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)
1.1 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
6: */
7:
1.2 ! paf 8: static const char * const IDENT_SMTP_H="$Date: 2003/11/21 12:35:50 $";
1.1 paf 9:
10:
11: #include "pa_string.h"
12:
13: #include <winsock.h>
14:
15: //////////////////////////////////////////////////////////////////////////////
16:
17: #define SOCKET_BUFFER_SIZE 512
18:
19: #define ERR_SENDING_DATA 4002
20: #define ERR_NOT_A_SOCKET 4010
21: #define ERR_CLOSING 4012
22: #define WAIT_A_BIT 4013
23:
24: #define MAXOUTLINE 255
25:
26: //////////////////////////////////////////////////////////////////////////////
27:
28: /// SIMPLE MAIL TRANSPORT PROTOCOL Win32 realization
29: class SMTP: public PA_Object {
30: char *in_buffer;
31: char *out_buffer;
32: unsigned int in_index;
33: unsigned int out_index;
34: unsigned int in_buffer_total;
35: unsigned int out_buffer_total;
36: unsigned int last_winsock_error;
37: fd_set fds;
38: struct timeval timeout;
39:
40: SOCKET the_socket;
41:
42: char my_hostname[1024];
43:
44: CHAR ServerProtocol[100];
45: CHAR RemoteAddress[100];
46: CHAR RemoteHost[100];
47: CHAR RemoteUser[100];
48: CHAR HttpAccept[100];
49: CHAR HttpUserAgent[256];
50:
51: CHAR FirstName[100];
52: CHAR LastName[100];
53: CHAR WebUse[100];
54: CHAR EMail[100];
55: CHAR HomePage[100];
56: CHAR text[500];
57:
58: public:
59: SMTP();
60: override ~SMTP();
61:
62: // smtp.C
63: void Send(const char* , const char* , const char* , char *, char *);
64: BOOL MakeSmtpHeader(char *, char *, char *, char *);
65: void prepare_message(char *, char *, const char* , const char* );
66: void open_socket(const char* , const char* );
67: int get_line(void);
68: void SendSmtpError(const char* );
69: void transform_and_send_edit_data(const char* );
70: void send_data(const char* );
71: void ConnectToHost(const char* , const char* );
72: int GetBuffer(int);
73: int GetChar(int, char *);
74: void SendLine(const char* , unsigned long);
75: void SendBuffer(const char* , unsigned long);
76: void FlushBuffer();
77: BOOL CloseConnect();
78:
79: // comms.C
80: int IsAddressARawIpaddress(const char* );
81: int ResolveService(const char* , u_short *);
82: int ResolveHostname(const char* , struct sockaddr_in *);
83: int GetAndSetTheSocket(SOCKET *);
84: int GetConnection(SOCKET, struct sockaddr_in *);
85: void MiscSocketSetup(SOCKET, fd_set *, struct timeval *);
86: };
E-mail: