7.8. Disconnect
This script is executed when the client has disconnected.
7.8.1. Variables
These are the pre-defined variables available for each command. Depending on when the disconnect script is executed, the different objects may contain different information.
Variable |
Type |
Read-only |
Description |
---|---|---|---|
array |
yes |
Context/hook arguments |
|
array |
yes |
Connection/session bound |
|
$transaction |
array |
yes |
Transaction bound (empty) |
$context |
any |
no |
Connection bound user-defined (default none) |
7.8.1.1. Arguments
Array item |
Type |
Example |
Description |
---|---|---|---|
close |
string |
“local” |
Who initialized the disconnect ( |
array |
[“code” => 250, “enhanced” => [1, …] |
A SMTP protocol response (if available) |
|
array |
[“reason” => “…. |
If an error occurred (if available) |
7.8.1.1.1. Error
Array item |
Type |
Example |
Description |
---|---|---|---|
reason |
string |
“Connection reset by peer” |
The error message |
type |
string |
“socket” |
The type of error (if avilable, |
code |
number |
54 |
The error code (for |
7.8.1.1.2. Reply
Array item |
Type |
Example |
Description |
---|---|---|---|
code |
number |
221 |
A SMTP status code |
enhanced |
array |
[2, 5, 0] |
A SMTP enhanced status code |
reason |
array |
[“Bye”] |
A SMTP response text |
string |
“QUIT” |
An enum to indicate which issued SMTP command triggerd the disconnect |
7.8.1.2. Connection
Array item |
Type |
Example |
Description |
---|---|---|---|
id |
string |
“18c190a3-93f-47d7-bd…” |
ID of the connection |
remoteip |
string |
“192.168.1.11” |
IP address of the connected client |
remoteport |
number |
41666 |
TCP port of connected client |
remoteptr |
string |
“mail.example.org” |
Reverse DNS (FCrDNS) for remoteip (not always available) |
remoteuid |
number |
106 |
UNIX socket remote user id (not always available) |
localip |
string |
“10.0.0.1” |
IP address of the server |
localport |
number |
25 |
TCP port of the server |
serverid |
string |
“inbound” |
ID of the server |
array |
HELO information (not always available) |
||
array |
TLS information (if TLS was started) |
||
array |
AUTH information (not always available) |
7.8.1.2.1. HELO
Array item |
Type |
Example |
Description |
---|---|---|---|
verb |
string |
“EHLO” |
HELO or EHLO command |
host |
string |
“mail.example.com” |
HELO hostname |
7.8.1.2.2. TLS
Array item |
Type |
Example |
Description |
---|---|---|---|
protocol |
string |
“TLSv1.3” |
The protocol |
cipher |
string |
“ECDHE-RSA-AES256-SHA384” |
The cipher |
keysize |
number |
256 |
The keysize |
sni |
string |
“example.com” |
The SNI hostname (not always available) |
array |
The peer certificate (if provided by the client) |
7.8.1.2.2.1. Peercert
Array item |
Type |
Example |
Description |
---|---|---|---|
x509 |
X509Resource |
An X509Resource to be used with the |
|
error |
number |
18 |
The peer certificate validation error (see OpenSSLs SSL_get_verify_result(3)) |
7.8.1.2.3. AUTH
Array item |
Type |
Example |
Description |
---|---|---|---|
mechanism |
string |
“PLAIN” |
SASL mechanism (always in uppercase) |
username |
string |
“mailuser” |
SASL username (not always available) |
7.8.2. Functions
- disconnect.Pass()
Terminate the disconnect script.
- Returns
doesn’t return, script is terminated
7.8.3. On script error
On script error Pass()
is called.
7.8.4. On implicit termination
If not explicitly terminated then Pass()
is called.