7.2. HELO

The HELO context allows verification of the HELO and EHLO domain.

7.2.1. Pre-defined variables

These are the read-only pre-defined variables available for HELO and EHLO command.

7.2.1.1. Connection

Variable Type Example Description
$senderip string “192.168.1.11” IP address of the connected client
$senderport number 41666 TCP port of connected client
$serverip string “10.0.0.1” IP address of the mailserver
$serverport number 25 TCP port of the mailserver
$serverid string “mailserver:1” ID of the mailserver profile
$tlsstarted boolean false Whether or not the SMTP session is using TLS

These are the writable pre-defined variables available.

Variable Type Description
$context any Connection-bound variable

7.2.1.2. Transaction

Variable Type Example Description
$messageid string “18c190a3-93f-47d7-bd...” ID of the message

7.2.1.3. Arguments

Variable Type Example Description
$senderhelo string “mail.example.com” HELO message of sender
$senderhelotype string “EHLO” HELO or EHLO command

7.2.2. Functions

helo.Accept([options])

Accept the HELO or EHLO command.

Parameters:options (array) – an options array
Returns:doesn’t return, script is terminated

The following options are available in the options array.

  • extensions (array) SMTP service extensions to announce.
helo.Reject([reason[, options]])

Reject the HELO or EHLO command with a permanent (554) error.

Parameters:
  • reason (string or array) – reject message with reason
  • options (array) – an options array
Returns:

doesn’t return, script is terminated

The following options are available in the options array.

  • disconnect (boolean) disconnect the client. The default is false.
  • reply_codes (array) The array may contain code (number) and enhanced (array of three numbers). The default is pre-defined.
helo.Defer([reason[, options]])

Defer the HELO or EHLO command with a temporary (450) error.

Parameters:
  • reason (string or array) – defer message with reason
  • options (array) – an options array
Returns:

doesn’t return, script is terminated

The following options are available in the options array.

  • disconnect (boolean) disconnect the client. The default is false.
  • reply_codes (array) The array may contain code (number) and enhanced (array of three numbers). The default is pre-defined.
helo.GetExtensions()

Return the current SMTP service extensions to be sent if the EHLO command was issued.

Returns:the current SMTP service extensions
Return type:array
helo.GetTLS([options])

Get the TLS information for a connection.

Parameters:options (array) – options array
Return type:array

The following options are available in the options array.

  • fingerprint (string) Generate the fingerprint of the certificate using one of the following hash function (md5, sha1, sha256 or sha512). The default no hashing.

The following items are available in the result.

  • started (boolean) If STARTTLS was issued.
  • protocol (string) The protocol used (eg. TLSv1.2)
  • ciphers (string) The cipher used (eg. ECDHE-RSA-AES256-SHA384).
  • keysize (number) The keysize used (eg. 256).
  • peer_cert (array) The peer certificate (if provided by the client). Same format as TLSSocket.getpeercert().
  • peer_cert_error (number) The peer certificate validation error (see OpenSSLs SSL_get_verify_result(3)).

7.2.3. On script error

On script error Defer() is called.

7.2.4. On implicit termination

If not explicitly terminated then Accept() is called.