Message Submission
- Table of Contents
- What methods are supported for submitting messages to GreenArrow?
- How does the SMTP Message Injection API handle authentication?
- Does the SMTP Message Injection API function support customization?
- What SMTP extensions do you support?
- How do I get the best performance using SMTP?
- Does the HTTP Message Injection API support batching and compression?
- How does the HTTP Message Injection API handle authentication?
- How do I get the best performance with the HTTP Message Injection API?
What methods are supported for submitting messages to GreenArrow?
GreenArrow supports two methods of message injection:
- An Industry Standard SMTP Message Injection API to port 587
- A RESTful HTTP Message Injection API
In addition, GreenArrow can and does function as an inbound mail server, listening for SMTP connections on port 25.
How does the SMTP Message Injection API handle authentication?
Authentication for injecting email can be done by source IP address or SMTP-AUTH.
Does the SMTP Message Injection API function support customization?
When a message is passed to GreenArrow through the SMTP Message Injection API, it first undergoes processing before Engine
attempts to deliver the message to its destination. This processing can be extensively customized with the addition of
custom RFC 5322 headers. Most of these header names
begin with X-GreenArrow- and are removed after processing and before delivery is attempted. (These headers can also be
provided to the HTTP API in the JSON payload as message headers.)
In addition to the headers mentioned in the previous paragraph, these headers and configuration directives can also be used to customize the processing and delivery of email:
- The X-GreenArrow-DKIM-Header
- The process_x_virtual_mta_header configuration directive.
- The pcompat_process_x_dkim_options_header configuration directive.
- The log_header configuration directive.
- The log_header_remove configuration directive.
- The remove_header configuration directive.
- The message_pattern_list configuration directive.
- The header_pattern configuration directive.
These same headers may also be provided to the HTTP Injection API.
What SMTP extensions do you support?
The following SMTP extensions are supported:
- STARTTLS
- SMTP AUTH
- PIPELINING
- 8BITMIME
How do I get the best performance using SMTP?
For best performance we recommend:
-
Keeping the same SMTP connection open for thousands of emails. This allows TCP slow start to grow the congestion window. If using STARTTLS or SMTPS, this also dilutes the work of establishing a TLS connection over many emails.
-
Using PIPELINING.
-
Using multiple parallel injectors.
Does the HTTP Message Injection API support batching and compression?
The HTTP Message Injection API supports batching of multiple messages into a single request, and compression of the HTTP payload.
How does the HTTP Message Injection API handle authentication?
Authentication is done by username/password pair.
The API may be accessed over HTTP or HTTPS.
How do I get the best performance with the HTTP Message Injection API?
For best performance, we recommend:
-
Using HTTP Keepalive and having your injector make many requests over the same TCP connection. This allows TCP slow start to grow the congestion window. If using HTTPS, this also dilutes the work of establishing a TLS connection over many emails.
-
Using multiple parallel injectors.
-
Consider using message batching, with a batch size of 5 or 10.
-
Consider using compression, if you are limited by the network.
