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  | 
priority  | 
number  | 
1  | 
The connection priority  | 
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.