Skip to main content

Name

binding — configure binding specific options

Description

binding "example" {
  # binding-specific settings
}

Use the binding stanza to define per-binding configuration options. You can nest domain and host stanzas inside binding stanzas to create per-binding per-domain, or per-binding per-host configurations.

Apart from the domain and host options, the following options are commonly specified in a binding stanza:

See Table 9.26, “binding options” to determine whether an option is valid in the binding scope. An example of a binding stanza follows.

binding "my_binding" {
  bind_address = "208.77.188.166"
  generate_bounces = true
  ehlo_hostname = "my_name.com"
}

Warning

Binding names are case-sensitive. Spaces and colons are not allowed in binding names.

The "default" Binding

The default binding is a special case of a binding scope. This binding exists without being explicitly defined. You can confirm its existence by issuing the ec_console command binding summary. Along with any other bindings that you have defined, you should also see Summary Statistics For Binding default.

However, if you wish, you can explicitly create the default binding scope and set options in that scope. Do this in the following way:

binding "default" {
  ehlo_hostname = "example.com"
}

Defining and using the "default" binding is required any time you want to change the behavior for any message that isn't assigned to some other binding. Do this in your configuration file as indicated above or set it at runtime using Lua (or Sieve). Setting the default binding from a script is done in exactly the same way as setting any other binding. For an example of setting a binding see msg:binding.

Even if you never assign messages to bindings the "default" binding can still be used to alter default behavior. This is done by setting the values of options in the default binding scope.

More importantly, if you do assign messages to bindings, ensure that all messages are assigned to bindings, or make sure that the fallback binding (otherwise known as "default") does what you want. Good scripting practice ensures that there is always an else clause or some other way of ensuring that all messages are always dealt with in some way. For example, you could create a variable at the top of your script with the most general binding, then if blocks to assign a message to a more specific binding if it matches. At the end of the script, assuming no if condition applies, the else clause would assign the message to the most general binding.

In a cluster configuration, if you wish to set an option to different values within the default binding scope you can do this by explicitly defining the default binding in the node-specific configuration file and then defining options within that scope. You can create a node-specific configuration file using the web UI or by manually creating it as described in “Best Practices for Adding Configuration Files”.

Removing a Binding

When you are removing a binding that is in use take the following steps:

  1. Examine the binding assignment to determine if there are any policy settings associated with the binding.

  2. If there are none, then suspend the binding and apply the configuration changes. For information about suspending a binding see suspend_delivery.

  3. Examine the mail queue. If there is mail for the suspended binding, reassign it to another binding. If the queued messages are not reassigned to another binding, they will go to the default binding. For more information see showqueue and reroute queue.

  4. Once all of reassigned messages are out of the queue, restart ecelerity to fully remove the binding from the configuration.

Scope and Valid Options

binding is valid in the global scope and in the binding_group scope.

Options Valid in the Binding Scope

The options valid in the binding scope are as follows:

Option/DescriptionDefaultScopes
adaptive_adjustment_interval – Throttle the adaptive adjustment interval60binding, binding_group, domain, global
adaptive_alert_email_destination – The address where adaptive alerts should be sent binding, binding_group, domain, global
adaptive_alert_email_sender – Set the sender address of the alert emailNULLbinding, binding_group, domain, global
adaptive_attempt_threshold – The minimum delivery attempts over a period during which bounce stats are collected and suspensions attempted2000binding, binding_group, domain, global
adaptive_body_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_default_suspension – The amount of time to suspend a domain4 hoursbinding, binding_group, domain, global
adaptive_default_suspension_enabled – Enables and disables adaptive_rejection_rate_suspension_percentagefalsebinding, binding_group, domain, global
adaptive_ehlo_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_enabled – Whether to enable the adaptive module for a specific scopefalsebinding, binding_group, domain, global
adaptive_fbl_volume_threshold – The minimum total delivered mail count over a period during which FBL stats are collected20000binding, binding_group, domain, global
adaptive_idle_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_mailfrom_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_deliveries_per_connection – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_outbound_connections – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_recipients_per_batch – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_recipients_per_connection – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_resident_active_queue – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_retries – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_max_retry_interval – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_notification_events – Configure the events that will trigger an email notificationthrottle suspension blackholebinding, binding_group, domain, global
adaptive_notification_events – Configure the events that will trigger an email notificationthrottle suspension blackholebinding, binding_group, domain, global
adaptive_notification_interval – The throttle for adaptive alert notification emails3600binding, binding_group, domain, global
adaptive_outbound_throttle_messages – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_positive_adjustment_interval – Throttle positive adjustments to adaptive changes3600binding, binding_group, domain, global
adaptive_rcptto_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_rejection_rate_suspension_percentage – The rate at which messages are rejected20binding, binding_group, domain, global
adaptive_retry_fuzz – Allow greater control over bulk message retries in cases where all messages for a domain have to be retried4096binding, binding_group, domain, global
adaptive_retry_interval – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_rset_timeout – Set the bounds for the adaptive option binding, binding_group, domain, global
adaptive_scope – Define the scope applicable to adaptive deliveryautobinding, binding_group, domain, global
adaptive_sweep_rule (scope) – Set the thresholds and actions for adaptive fbl and bounce rules binding, binding_group, domain, global
adaptive_sweep_rule_enabled – Enable or disable adaptive_sweep_rule in a specified scope1binding, binding_group, domain, global
apn_expiry – Define the number of seconds after which an APNs notification is no longer validyesbinding, binding_group, domain, global
bind_address – Source address for outbound connections binding, binding_group, global
blackhole – Blackhole mailfalsebinding, binding_group, domain, global
body_timeout – Network timeout once the DATA phase is complete600binding, binding_group, domain, global
bounces_inline_original – How much of the original message to include in MDNsheadersbinding, binding_group, domain, global
cluster_max_outbound_connections – Set the maximum number of outbound connections for a domain-1binding, domain, global, host
cluster_scope_max_outbound_connections – Provide traffic shaping for outbound connections binding, binding_group, domain, global, host
cluster_server_max_outbound_connections – Set the maximum number of outbound connections binding, binding_group, global
connect_timeout – Set the connection timeout300binding, binding_group, domain, global
connect_timeout_to_delay – Time interval before moving mail into the delayed queue900binding, binding_group, domain, global
connection_allocation_aggressiveness – Tune the aggressiveness for establishing new connections to domainsnormalbinding, binding_group, domain, global
delay_dsn_max_retry_interval – Maximum interval for sending DSNs to the sender of a message that has not yet been delivered43200binding, binding_group, domain, global
delay_dsn_retry_interval – Base interval for sending DSNs to the sender of a message that has not yet been delivered3600binding, binding_group, domain, global
delayed_binding_domain_fuzz – The time period to spread scheduled messages over when a bulk requeue is necessary0binding, binding_group, global
delivery_method – Set the delivery methodESMTP, SMTPbinding, binding_group, domain, global
delivery_response_timeout – Time to wait for a response to an outbound request5000binding, domain, global
dkim – Enable or disable signing messages binding, binding_group, domain, global
domain (scope) – Configure domain-specific options binding, binding_group, global
domainkeys – Enable or disable domainkeys signing binding, binding_group, domain, global
drop_body_after_trans_fail – Number of retry attempts before freeing message memory3binding, binding_group, domain, global
“DuraVIP™: IP Fail over” – Specify a DuraVIP™ preference binding, listen
ecstream_port – Configure the port for ecstream deliveries1825binding, binding_group, domain, global
ecstream_timeout – The amount of time to wait for an ecstream connection to be established600binding, binding_group, domain, global
ehlo_hostname – Set the hostname used for EHLO in outbound mailhostnamebinding, binding_group, domain, global
ehlo_timeout – Network timeout for EHLO300binding, binding_group, domain, global
“DuraVIP™: IP Fail over” – Whether to enable Durable MultiVIP© bindings binding, listen
enable_fbl_header_insertion – Enable or disable fbl header insertion binding, binding_group, domain, global
exclude_vctx – Exclude validation connection context keys from being journaled in the spool metadata binding, binding_group, domain, global
exclude_vctx – Exclude validation message context keys from being journaled in the spool metadata binding, binding_group, domain, global
fully_resolve_before_smtp – Resolve all MX and A records before attempting deliverytruebinding, binding_group, domain, global
gateway – Configure a static SMTP route for mail binding, binding_group, domain, global
gcm_application_id – Define the package name of the Android application allowed to received notifications binding, binding_group, domain, global
gcm_authorization_token_id – The authorization token that permits sending Google push notifications binding, binding_group, domain, global
gcm_delay_while_idle – Whether or not to send the notification immediately if a device is idlefalsebinding, binding_group, domain, global
gcm_dry_run – Test a request without actually sending a messagefalsebinding, binding_group, domain, global
gcm_ttl – Default Time To Live for notifications-1binding, binding_group, domain, global
generate_bounces – Generate MDNs if mail is failed after receptiontruebinding, binding_group, domain, global
generate_delay_dsn – Generate DSNs if mail is delayedfalsebinding, binding_group, domain, global
host (scope) – Configure host-specific options binding, binding_group, global
http_basic_auth – Define the user credentials when using basic HTTP authentication binding, binding_group, domain, global
http_host – Define the HTTP host binding, binding_group, domain, global
http_method – Define the HTTP method to usePOSTbinding, binding_group, domain, global
http_uri – Define the HTTP URI that you wish to connect to binding, binding_group, domain, global
http_version – Define the HTTP version to use1.1binding, binding_group, domain, global
idle_timeout – Time to maintain idle outbound connections5binding, binding_group, domain, global
lmtp_port – Configure the port for LMTP deliveries2003binding, binding_group, domain, global
mailerdaemon – Set the From: address for MDNs binding, binding_group, domain, global
mailfrom_timeout – Timeout after MAIL FROM300binding, binding_group, domain, global
max_deliveries_per_connection – Maximum number of messages to deliver before closing a connection0binding, binding_group, domain, global
max_outbound_connections – Set the maximum number of outbound connections32binding, binding_group, domain, global, host
max_recipients_per_batch – The maximum number of recipients to send in a single outbound message transaction100binding, binding_group, domain, global
max_recipients_per_connection – The maximum number of recipients to send on a connection0binding, binding_group, domain, esmtp_listener, global, listen, peer
max_resident_active_queue – Threshold above which messages are not held in memory250binding, binding_group, domain, global
max_resident_messages – Threshold above which messages are not held in memory32768binding, binding_group, global
max_retries – Override the system configured max_retries binding, binding_group, domain, global
max_retry_interval – Maximum retry interval43200binding, binding_group, domain, global
mdn_failures_notify – Mailbox to which to send null recipient MDNs binding, binding_group, domain, global
message_expiration – Time to live for messages86400binding, binding_group, domain, global
never_attempt_expired_messages – Never attempt delivery of expired messagesfalsebinding, binding_group, domain, global
never_retry – Whether or not to retry delivery of failed messagesfalsebinding, binding_group, domain, global
opendkim_sign – Whether or not to enable OpenDKIM signingtruebinding, binding_group, domain, global
outbound_throttle_connections – Limit the rate at which connections are established binding, binding_group, domain, global
outbound_throttle_messages – Limit the rate at which messages are delivered binding, binding_group, domain, global
rcptto_timeout – Timeout after RCPT TO300binding, binding_group, domain, global
remote_smtp_port – Set the port to be used for SMTP deliveries25binding, binding_group, domain, global
response_transcode_pattern – The regex pattern for comparison to a server response binding, binding_group, domain, global
response_transcode_replace – The replacement string for a server response binding, binding_group, domain, global
retry_interval – Base retry interval1200binding, binding_group, domain, global
rset_timeout – Set the timeout after RSET30binding, binding_group, domain, global
scope_max_outbound_connections – Provide traffic shaping for outbound connections binding, binding_group, domain, global
send_8bitmime – Enable advertising of 8BITMIME when sending mailnobinding, binding_group, domain, global
server_max_outbound_connections – Sets the maximum number of outbound connections20000binding, binding_group, global
suspend_delivery – Prevent outbound mail deliveryfalsebinding, binding_group, domain, global
tls – Determine whether to use a TLS connection for outbound mailnobinding, binding_group, domain, global
tls_ca – Certificate authority for outbound mail binding, binding_group, domain, global
tls_certificate – Certificate to use for inbound and outbound mail binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener
tls_ciphers – Allowable ciphers for a TLS session binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener
tls_ifavailable_fallback – Determine the behavior if TLS negotiation failstruebinding, binding_group, domain, global
tls_key – the TLS key to use for outbound mail or inbound mail binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener
tls_protocols – Allowable ciphers for TLS inbound and outbound sessions binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer
tls_verify – Specify how to handle the remote certificatesnobinding, binding_group, domain, global
transform_8bitmime_content – Enable 8BITMIME downconversion when sending mailifneededbinding, binding_group, domain, global
xclient – Use the XCLIENT extension to SMTP for outbound mailnobinding, binding_group, domain, global

See Also

Was this page helpful?