Annotation of parser3/src/classes/smtp/smtp.h, revision 1.4
1.1 paf 1: /** @file
2: Parser: SMTP sender decl.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
5: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
6:
1.4 ! parser 7: $Id: smtp.h,v 1.3 2001/04/26 14:55:20 paf Exp $
1.1 paf 8: */
9:
10: #include <winsock.h>
11:
12: #include "pa_pool.h"
13: #include "pa_string.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:
1.3 paf 28: /// SIMPLE MAIL TRANSPORT PROTOCOL Win32 realization
1.1 paf 29: class SMTP : public Pooled {
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: const String& origin_string;
59:
60: public:
61: SMTP(Pool& pool, const String& aorigin_string);
62:
63: // smtp.C
1.2 paf 64: void Send(const char *, const char *, const char *, char *, char *);
1.1 paf 65: BOOL MakeSmtpHeader(char *, char *, char *, char *);
1.2 paf 66: void prepare_message(char *, char *, const char *, const char *);
67: void open_socket(const char *, const char *);
1.1 paf 68: int get_line(void);
69: void SendSmtpError(const char *);
70: void transform_and_send_edit_data(const char *);
71: void send_data(const char *);
1.2 paf 72: void ConnectToHost(const char *, const char *);
1.1 paf 73: int GetBuffer(int);
74: int GetChar(int, char *);
75: void SendLine(const char *, unsigned long);
76: void SendBuffer(const char *, unsigned long);
77: void FlushBuffer();
78: BOOL CloseConnect();
79:
80: // comms.C
1.2 paf 81: int IsAddressARawIpaddress(const char *);
82: int ResolveService(const char *, int *);
83: int ResolveHostname(const char *, struct sockaddr_in *);
1.1 paf 84: int GetAndSetTheSocket(SOCKET *);
85: int GetConnection(SOCKET, struct sockaddr_in *);
86: void MiscSocketSetup(SOCKET, fd_set *, struct timeval *);
87: };
88:
E-mail: