Difference between revisions of "Unit SMTP"
From Ultibo.org
Line 5: | Line 5: | ||
---- | ---- | ||
− | '''Ultibo SMTP | + | '''Ultibo SMTP Interface unit''' |
− | + | ||
− | + | ||
=== Constants === | === Constants === |
Latest revision as of 05:31, 31 August 2021
Return to Unit Reference
Contents
Description
Ultibo SMTP Interface unit
Constants
SMTP specific constants
SMTP_*
SMTP_LINE_END = Chr(13) + Chr(10);
|
CR LF |
SMTP_BUFFER_SIZE = SIZE_4K;
|
SMTP status
SMTP_STATUS_*
SMTP_STATUS_NONE = 0;
|
|
SMTP_STATUS_CONN = 1;
|
|
SMTP_STATUS_HELO = 2;
|
|
SMTP_STATUS_AUTH = 3;
|
|
SMTP_STATUS_MAIL = 4;
|
|
SMTP_STATUS_RCPT = 5;
|
|
SMTP_STATUS_DATA = 6;
|
|
SMTP_STATUS_QUIT = 7;
|
|
SMTP_MAX_STATUS = 7;
|
SMTP command
SMTP_COMMAND_*
SMTP_COMMAND_HELO = 'HELO';
|
|
SMTP_COMMAND_EHLO = 'EHLO';
|
|
SMTP_COMMAND_TIME = 'TIME';
|
|
SMTP_COMMAND_NOOP = 'NOOP';
|
|
SMTP_COMMAND_AUTH = 'AUTH';
|
|
SMTP_COMMAND_MAIL = 'MAIL';
|
|
SMTP_COMMAND_RCPT = 'RCPT';
|
|
SMTP_COMMAND_VRFY = 'VRFY';
|
|
SMTP_COMMAND_BEGIN_DATA = 'DATA';
|
|
SMTP_COMMAND_END_DATA = '.';
|
|
SMTP_COMMAND_RSET = 'RSET';
|
|
SMTP_COMMAND_QUIT = 'QUIT';
|
SMTP sub command
SMTP_SUB_COMMAND_*
SMTP_SUB_COMMAND_MAIL_FROM = 'FROM:';
|
|
SMTP_SUB_COMMAND_RCPT_TO = 'TO:';
|
SMTP string
SMTP_STRING_*
SMTP_STRING_CONTINUE = '-';
|
|
SMTP_STRING_CONN_SUCCESS = '220 ';
|
|
SMTP_STRING_QUIT_SUCCESS = '221 ';
|
|
SMTP_STRING_HELO_SUCCESS = '250 ';
|
|
SMTP_STRING_EHLO_SUCCESS = '250 ';
|
|
SMTP_STRING_TIME_SUCCESS = '250 ';
|
|
SMTP_STRING_NOOP_SUCCESS = '250 ';
|
|
SMTP_STRING_CONT_SUCCESS = '250-';
|
|
SMTP_STRING_AUTH_SUCCESS = '235 ';
|
|
SMTP_STRING_AUTH_CHALLENGE = '334 ';
|
|
SMTP_STRING_MAIL_SUCCESS = '250 ';
|
|
SMTP_STRING_RCPT_SUCCESS = '250 ';
|
|
SMTP_STRING_VRFY_SUCCESS = '250 ';
|
|
SMTP_STRING_BEGIN_DATA_SUCCESS = '354 ';
|
|
SMTP_STRING_END_DATA_SUCCESS = '250 ';
|
|
SMTP_STRING_RSET_SUCCESS = '250 ';
|
|
SMTP_STRING_WRITE_FAILURE = '451 ';
|
|
SMTP_STRING_COMMAND_FAILURE = '500 ';
|
|
SMTP_STRING_SYNTAX_FAILURE = '501 ';
|
|
SMTP_STRING_LOGON_FAILURE = '501 ';
|
|
SMTP_STRING_SEQUENCE_FAILURE = '503 ';
|
|
SMTP_STRING_AUTH_FAILURE = '504 ';
|
|
SMTP_STRING_RCPT_FAILURE = '553 ';
|
|
SMTP_STRING_VRFY_FAILURE = '550 ';
|
|
SMTP_STRING_SIZE_FAILURE = '552 ';
|
|
SMTP_STRING_FORWARD_FAILURE = '551 ';
|
|
SMTP_STRING_PERMISSION_FAILURE = '571 ';
|
|
SMTP_STRING_CONN_OK = 'Ultibo SMTP server (version ' + ULTIBO_RELEASE_VERSION + ')';
|
|
SMTP_STRING_HELO_OK = 'Ultibo SMTP server - Hello, ';
|
|
SMTP_STRING_EHLO_HEAD_OK = 'Ultibo SMTP server - Hello ';
|
|
SMTP_STRING_EHLO_TAIL_OK = '; ESMTPs are: ';
|
|
SMTP_STRING_AUTH_OK = 'Authenticated OK';
|
|
SMTP_STRING_MAIL_OK = 'Sender OK - send RCPTs';
|
|
SMTP_STRING_MAIL_SIZE_HEAD_OK = 'Sender and size (';
|
|
SMTP_STRING_MAIL_SIZE_TAIL_OK = ') OK - send RCPTs';
|
|
SMTP_STRING_RCPT_OK = 'Recipient OK - send RCPT or DATA';
|
|
SMTP_STRING_VRFY_OK = 'OK - ';
|
|
SMTP_STRING_BEGIN_DATA_OK = 'OK, send data, end with CRLF.CRLF';
|
|
SMTP_STRING_END_DATA_OK = 'Data received OK';
|
|
SMTP_STRING_RSET_OK = 'Command processed OK';
|
|
SMTP_STRING_QUIT_OK = 'Ultibo SMTP server closing connection';
|
|
SMTP_STRING_TIME_OK = 'Time is ';
|
|
SMTP_STRING_NOOP_OK = 'OK';
|
|
SMTP_STRING_BAD_COMMAND = 'Command unrecognized';
|
|
SMTP_STRING_BAD_SYNTAX = 'Bad syntax in command';
|
|
SMTP_STRING_BAD_SEQUENCE = 'Bad sequence of commands';
|
|
SMTP_STRING_BAD_AUTH = 'Unrecognized authentication type';
|
|
SMTP_STRING_BAD_LOGON = 'Authentication failed';
|
|
SMTP_STRING_BAD_MAIL = 'Unknown sender';
|
|
SMTP_STRING_BAD_RCPT = 'Unknown recipient';
|
|
SMTP_STRING_BAD_VRFY = 'Mailbox not found';
|
SMTP logging
SMTP_LOG_*
SMTP_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG;
|
SMTP debugging messages |
SMTP_LOG_LEVEL_INFO = LOG_LEVEL_INFO;
|
SMTP informational messages |
SMTP_LOG_LEVEL_WARN = LOG_LEVEL_WARN;
|
SMTP warning messages |
SMTP_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;
|
SMTP error messages |
SMTP_LOG_LEVEL_NONE = LOG_LEVEL_NONE;
|
No SMTP messages |
Type definitions
SMTP client notify event
TSMTPClientNotifyEvent = procedure(const ARequest:String) of Object;
|
SMTP host event
TSMTPHostEvent = function(AConnection:TSMTPConnection):Boolean of Object;
|
SMTP count event
TSMTPCountEvent = function(AConnection:TSMTPConnection):Boolean of Object;
|
SMTP notify event
TSMTPNotifyEvent = procedure(AConnection:TSMTPConnection; const ARequest:String) of Object;
|
SMTP request event
TSMTPRequestEvent = function(AConnection:TSMTPConnection; const ARequest:String; var AReply:String):Boolean of Object;
|
SMTP authenticate event
TSMTPAuthenticateEvent = function(AConnection:TSMTPConnection; const AMethod,AUsername,APassword:String; var AReply:String):Boolean of Object;
|
SMTP connection event
TSMTPConnectionEvent = procedure(AConnection:TSMTPConnection) of Object;
|
Class definitions
SMTP helper classes
TSMTPBuffer = class(TObject)
|
SMTP client classes
TSMTPClient = class(TWinsock2TCPClient)
|
SMTP server classes
TSMTPConnection = class(TListObject)
|
TSMTPListener = class(TWinsock2TCPListener)
|
Public variables
SMTP logging
SMTP_DEFAULT_LOG_LEVEL:LongWord = SMTP_LOG_LEVEL_DEBUG;
|
Minimum level for SMTP messages. Only messages with level greater than or equal to this will be printed. |
SMTP_LOG_ENABLED:Boolean;
|
Function declarations
Initialization functions
procedure SMTPInit;
Description: To be documented
Note | None documented |
---|
SMTP helper functions
procedure SMTPLog(Level:LongWord; const AText:String);
Description: To be documented
Note | None documented |
---|
procedure SMTPLogInfo(const AText:String); inline;
Description: To be documented
Note | None documented |
---|
procedure SMTPLogWarn(const AText:String); inline;
Description: To be documented
Note | None documented |
---|
procedure SMTPLogError(const AText:String); inline;
Description: To be documented
Note | None documented |
---|
procedure SMTPLogDebug(const AText:String); inline;
Description: To be documented
Note | None documented |
---|
Return to Unit Reference