7.5. MAIL FROM
The MAIL FROM
script allows verification of the sender.
7.5.1. Variables
These are the pre-defined variables available.
Variable |
Type |
Read-only |
Description |
---|---|---|---|
array |
yes |
Context/hook arguments |
|
array |
yes |
Connection/session bound |
|
array |
yes |
Transaction bound |
|
$context |
any |
no |
Connection bound user-defined (default none) |
7.5.1.1. Arguments
Array item |
Type |
Example |
Description |
---|---|---|---|
sender |
string |
“test@example.org” |
Sender address (envelope), lowercase |
array |
[“localpart” => “test”…] |
Sender address (envelope) |
|
params |
array |
[“SIZE” => “2048”, … ] |
Sender parameters to the envelope address (keys will always be in uppercase) |
7.5.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.5.1.2.1. HELO
Array item |
Type |
Example |
Description |
---|---|---|---|
verb |
string |
“EHLO” |
HELO or EHLO command |
host |
string |
“mail.example.com” |
HELO hostname |
7.5.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.5.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.5.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.5.1.3. Transaction
Array item |
Type |
Example |
Description |
---|---|---|---|
id |
string |
“18c190a3-93f-47d7-bd…” |
ID of the transaction |
7.5.1.3.1. Address
Array item |
Type |
Example |
Description |
---|---|---|---|
localpart |
string |
“test” |
Local part of address |
domain |
string |
“example.org” |
Domain part of address |
7.5.2. Functions
- mailfrom.Accept([options])
Accept the MAIL FROM command (sender). Optionally change the sender accepted, which is written back to
$transaction
.- Parameters
options (array) – an options array
- Returns
doesn’t return, script is terminated
The following options are available in the options array.
sender (string or array) Change the sender email address, either as a string or an associative array with a
localpart
anddomain
. The default is theaddress
argument.params (array) Change the sender parameters. The default is the
params
argument.reason (string or array) The reason to report. The default is a system generated message.
reply_codes (array) The array may contain code (number) and enhanced (array of three numbers). The default code is
250
and enhanced is[2,1,0]
.
Note
This function changes the sender for all recipients. To change sender per recipient change the sender in the EOD context when queuing a recipient.
- mailfrom.Reject([reason[, options]])
Reject the MAIL FROM command (sender) 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 code is
550
and enhanced is[5,7,1]
.
- mailfrom.Defer([reason[, options]])
Defer the MAIL FROM command (sender) 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 code is
450
and enhanced is[4,7,1]
.
7.5.3. On script error
On script error Defer()
is called.
7.5.4. On implicit termination
If not explicitly terminated then Accept()
is called.