Change Log
GreenArrow v4.296.0
-
Fixed an issue with Studio Subscriber Exports where the first hour of the day (12am) would be blank.
-
Fixed an issue where changing the type of VirtualMTA defined in the config file (for example, converting an IP Address to a Routing Rule) would result in an error when running
greenarrow_config reload
. -
Studio: Increased campaign name maximum length from 150 to 200.
-
Studio: Mailing list names on the mailing list index are now links to the mailing list.
-
Studio: Fixed an issue that could lead to content being interpreted as ISO-8559-1 instead of UTF-8.
-
Fixed an issue where the disk space used and reported by
hvmail_status status
could be inaccurate.
GreenArrow v4.295.0
-
Fixed an issue where the Event Processor was incorrectly sending
is_retry
as an integer (1
or0
) in JSON instead oftrue
orfalse
. This was in contrast to the Legacy Event Processor, which sent this value astrue
orfalse
.If your integration depends on
is_retry
being1
or0
, you can keep this behavior using the legacy_behavior (event_processor_is_retry_as_integer) directive. -
The include directive may now be specified within any context, not only at the top-level of
greenarrow.conf
. -
Single-part messages generated by Studio and the HTTP Submission API now include the
MIME-Version
header.
GreenArrow v4.294.0
-
Update third-party software that ships with GreenArrow:
-
The Studio System Configuration page “Test reCAPTCHA API keys” will now warn you that an invalid key might cause the page to enter an infinite loop. This is due to a bug in Google’s reCAPTCHA JavaScript.
-
The Studio Subscribers API now accepts a
segment_id
parameter for filtering the list of retrieved subscribers to a specific segment. -
Subscriber Export timestamps are now in 24-hour time (they were previously in 12-hour time but with no AM/PM marker).
GreenArrow v4.293.0
-
Fixed an issue where a bounce code of
999
could appear indelivery_attempt
events instead of40
. Events that received a bounce code of999
can be considered equivalent to bounce code40
. -
Add support for the Debian 12 Linux distribution.
-
The backup program
hvmail_unmanged_backup
now usespigz
for compression instead ofgzip
. This causes the backup process to use more available CPUs, reducing the time it takes to complete a backup.
GreenArrow v4.292.0
-
The Studio subscribers and suppressed addresses index APIs both now present the total number of records in its pagination data, in line with other Studio APIs.
-
Fixed a bug that would prevent the
studio_subscriber_created
andstudio_subscriber_updated
events from being delivered by the Legacy Event Processor. -
Fixed a bug wherein running
greenarrow_config reload
could clear the “redirect” setting for IP addresses and relay servers.
GreenArrow v4.291.0
-
The Incoming Email Domains index is now paginated when more than 1,000 domains are configured.
-
The Bounce Address dropdown will no longer cause the Mail Class edit screen or the Incoming Email Domains index to freeze when there are a huge number of bounce mailboxes.
-
Added a configuration directive simplemh_validate_bounce_address to disable SimpleMH bounce address validation. Setting this directive to
no
reverts the Mail Class bounce address configuration to how it was prior to v4.285.0.
GreenArrow v4.290.2
-
Bug fix: Systems that have sent a large number of events (more than 2 billion) will temporarily stop sending events. The events aren’t lost, but will be delayed until this fix is in effect.
-
Bug fix: Beginning with GreenArrow v4.288.0, messages could get stuck in-queue without delivery attempts. This issue is due to a bug in re-reading messages after the disk queue is restarted.
Messages can only enter the stuck state when restarting the disk queue. If you have not restarted the disk queue since upgrading to a version after v4.288.0 (apart from the restart to accomplish the upgrade), you have not been affected.
If you have been affected you will see lines like:
in your2023-07-28 10:24:28.827654500 WARNING: queue_reader: cannot read file in queue (/var/hvmail/qmail-disk/queue/batches/17/275a2954-22dc-c1a1-dab5-d7623a7e09da-m1): error reading message file (/var/hvmail/qmail-disk/queue/batches/17/275a2954-22dc-c1a1-dab5-d7623a7e09da-m1): state self-check failed: message_batch not in normal mode: error in message index 0: error in recipient index 0: LastAttemptOutMtaID is non-zero (873) (State=DoneAndMarked)
/var/hvmail/log/hvmail-disk-qmail-send
logdir directory.Each stuck message batch will generate one log line like the above approximately every 5 minutes.
You can estimate the number of stuck message batches by running this command:
/var/hvmail/bin/logdir_select_time --dir /var/hvmail/log/disk-qmail-send --last '5 min' | grep 'state self-check failed: message_batch not in normal mode: error in message' | grep 'LastAttemptOutMtaID is non-zero' | wc -l
-
We have added a mechanism so that messages that were stuck (due to the above bug), once GreenArrow is updated and they can be processed, if they are older than their queue_lifetime, they will be failed with the error
Message expired. (#5.4.7)
. This only applies to messages that were stuck.
GreenArrow v4.290.1
-
Bug fix: SimpleMH seed list bounces will now correctly write
bounce_all
andbounce_bad_address
events for the seed address, instead of the original recipient address. -
Loosened a Mail Class validation that rejected the System Default bounce address when the System Default was not set.
GreenArrow v4.290.0
-
Delivery attempts that received a non-successful SMTP response from a remote server now include
bounce_code
. This is the bounce code for the SMTP response. This does not apply to the Legacy Event Processor nor the Legacy Delivery Attempt Log. We’ve provided a new configuration directive delivery_attempt_bounce_categorization to disable this behavior. -
Added some clarification to the bounce_processor_rule directive documentation to describe how to write regular expressions based on
delivery_attempt.message
instead ofbounce_all.bounce_text
.
GreenArrow v4.289.0
-
Added new configuration directives that provide a way to specify on a domain context the parameters of Backoff Mode due to a SMTP match (smtp_pattern or smtp_match_begin_backoff_mode).
-
Added new configuration directives:
- smtp_pattern_list lets you create a group of SMTP patterns.
- smtp_pattern lets you define individual SMTP patterns and the action that should be carried out as a result of a match.
- smtp_pattern_list lets you specify a group of SMTP patterns to apply to IP/domain combinations.
- Events can now be written to logfiles in
csv
format. See the following directives: -
Added a new configuration directive create_bounce_messages to disable the creation of bounce messages when delivery of a message permanently fails.
-
Added a new configuration directive bounce_recipients_with_no_mx to bounce messages to recipient email addresses with no
MX
records. -
Added a new bounce code
24
(Temp failure - Missing MX record) that will be generated when a message bounces due to bounce_recipients_with_no_mx. By default, this is treated as a soft bounce. -
Fix an issue where servers with thousands of IP addresses could see odd performance issues on outgoing SMTP delivery.
-
The number of backends allocated to the HTTP Submission API will now dynamically scale with number of CPU cores on the system, if not overrided. This leads to better out-of-the-box performance for HTTP injection, but may lead to higher out-of-the-box memory utilitzation.
- Fixed an issue where
bounce_all
andbounce_bad_address
events would not be created for recipient email addresses containing multiple@
signs.
GreenArrow v4.288.0
- This version includes new ways to see what’s in your disk queue.
-
Added a new GreenArrow command
greenarrow report disk_queue_summary
. - Added a new Disk Queue Summary API.
- Added a new UI in the “Statistics” section called “Disk Queue Summary”.
- In this new reporting, we offer
VirtualMTA (Most Recent)
and grouping the report by the throttling rule used for the most recent delivery attempt. This required new data to be tracked when delivery attempts are made. As such, after upgrading, you may temporarily see(not specified)
listed as theVirtualMTA (Most Recent)
or an incomplete list of domains listed for theThrottle
. This reporting inaccuracy will naturally resolve as delivery attempts are made and the expected data is made available to the report.
-
Added a new GreenArrow command
- Added the following configuration directives to pcompat DKIM signing:
- pcompat_dkim_identity_fallback for adding a fallback signing identity.
- pcompat_dkim_key_list for defining lists of DKIM keys.
-
pcompat_process_x_dkim_options_header for enabling support for the
X-DKIM-Options
header.
- Added a new configuration directive process_x_virtual_mta_header
to optionally support the
X-Virtual-MTA
header.
GreenArrow v4.287.1
-
Fixed an issue with Persistence Path Mode that would cause
hvmail_migrate
to not run all necessary migrations after upgrading. -
Performance optimization within
greenarrow-remote
on servers with lots of IP addresses.
GreenArrow v4.287.0
-
The
X-GreenArrow-*
headers now support header folding. -
The headers logged when Logging all SimpleMH Messages now support header folding.
-
Fixed an issue with
hvmail_update_tcprules
that would prevent SMTP services from working if the user’s shellumask
was unexpected.
GreenArrow v4.286.0
-
Added a new configuration directive log_header_remove to log and remove a header from injected messages.
-
Added a new configuration directive dkim_sign_extra_header to sign headers that aren’t present in the original message (thereby preventing those headers from being forged later). This is called “DKIM Oversigning” and helps to protect against DKIM replay attacks.
GreenArrow v4.285.0
-
The
$CLICKTHROUGH_URL
and$RETURN_PATH_OVERRIDE
SimpleMH configuration variables have been deprecated. In their place, we have added the following:-
Added new screens for viewing/editing the SimpleMH default URL domain and default bounce mailbox.
-
Added a selection list for the Mail Class bounce address
-
Added new configuration directives for setting the SimpleMH default URL domain and default bounce mailbox when configuring via the configuration file.
-
-
Added new configuration directives for writing through a pipe to a forked-off process’ STDIN.
-
Added new configuration directives for writing to SQL database destinations.
-
Added new configuration directives for writing to custom logfiles from the new event processor.
- event_delivery_logfile
- event_delivery_logfile_rotation
- event_delivery_logfile_delete_after_days
- event_delivery_logfile_move_to
- event_delivery_logfile_move_interval
- event_delivery_logfile_max_size
- event_delivery_logfile_world_readable
- event_delivery_logfile_fsync_frequency
- event_delivery_logfile_require_fsync
-
The new event processor introduced in GreenArrow v4.270.0 is now a full replacement for both the legacy event processor and the Delivery Attempt Log. All features of those systems can now be replaced with greenarrow.conf directives.
-
The new event processor (
/service/hvmail-event-processor2
) now runs as the userhvqmaill
by default instead ofroot
. We’ve added the directive event_delivery_run_as_root to override this behavior and cause the new event processor to run asroot
. -
Performance boost to the HTTP Submission API when using gzip compression.
GreenArrow v4.284.0
-
Fixed an issue with bounce processing concurrency when multiple bounces arriving for the same email address / listid combination at the same time, one of them could be skipped in processing. This fix does not apply to GreenArrow installations running Postgres 8.3.
-
Fixed an error on the “View all references” page for throttling templates referenced by many IP addresses.
-
With Google’s transition to Google Analytics 4 (which is replacing Universal Analytics), GreenArrow is phasing out the transmission of campaign renders/opens to Universal Analytics. Existing users will be unaffected for the time being, but be aware that Google is stopping support for Universal Analytics as of July 1, 2023.
-
Mailing lists may now be configured with Google Analytics 4 Measurement IDs (which look like
G-ASDFZXCV
). Clicks will be unaffected by this transition, as the relevantutm_*
parameters are still included if the mailing list is configured with Google Analytics Integration enabled and the campaign has click tracking enabled. -
Studio will now use the System Name (if set) instead of “GreenArrow” when generating the Two-Factor Authentication shared secret.
GreenArrow v4.283.0
-
hvmail_init status
will now provide more helpful information if your license key is not in good standing. -
greenarrow info
now also includes the version date in addition to the version number. This is the date that GreenArrow uses to decide whether or not the installed version exceeds the configured license key’sLicense Key: Updates Expiration
. This will always be before or equal to the release date found in this changelog. -
greenarrow info
will now warn you if you’re running a version of GreenArrow that exceeds yourLicense Key: Updates Expiration
. -
Fixed an issue that could lead to Redis memory utilization bloating if Studio click & open requests arrive and Studio is not licensed.
-
Studio: Number custom fields now support an option to enable decimals in these custom fields. The default remains that these field values must be whole integers.
-
Added a new option to
greenarrow init
--admin-password-prompt
to force a prompt for entering the user password. This helps avoid your password going into your shell history. -
Fixed an issue where messages without a body were not DKIM signed.
-
Reduced HTTP server KeepAliveTimeout from 5s to 1s. This helps to reduce the Apache server utilization on servers with a high volume of click and open tracking traffic.
-
Updated the
.greenarrow_web_form
CSS class in Studio web forms to be.mailer_web_form
to aid whitelabeled installations. -
The
bounce_bad_addresses
table now includesclick_tracking_id
. -
Fixed an error presented when attempting to create a subscriber import with no file specified (this should be a validation error, but was instead an Internal Error error page).
GreenArrow v4.282.0
-
Added a new GreenArrow command
greenarrow init
. This command is used to initialize new installations in the updated Installation Guide and replaces several steps of the install procedure. -
Added a new way to run GreenArrow called Persistence Path Mode which is covered in the updated Installation Guide. Traditional Mode is the well-established way to run GreenArrow.
-
Clarified in the Installation Guide that Docker is a supported way to run GreenArrow.
-
Added a new GreenArrow command
greenarrow info
for printing details about this installation of GreenArrow such as version number, persistence mode, and license key expiration. -
Tweak definition of 21st field of log_smtp_timings to be more clear and accurate. Fixes an issue where the 1st field could be negative.
-
Recategorized some
x.4.1
bounces that could be considered hard bounces as soft bounces. -
Restored support for remote delivery to mail exchangers that support only TLS 1.0.
-
Mail class names may now be up to 64 characters in length. Please see the Bounce Processor Concepts documentation for caveats regarding long mail class names.
-
Update third-party software that ships with GreenArrow:
- Apache from 2.4.52 to 2.4.56
GreenArrow v4.281.0
-
Engine: Added a new option to SimpleMH Mail Classes to be able to disable the List-Unsubscribe header that is usually automatically added.
-
Engine: Added a new SimpleMH header
X-GreenArrow-Disable-Auto-List-Unsubscribe-Header
for disabling per-message the List-Unsubscribe header that is usually automatically added.
GreenArrow v4.280.0
-
log_smtp_timings now includes time spent waiting for VirtualMTA throttle availability in the backlog queue.
-
Fixed an issue where
greenarrow remote_connections
could sometimes show saved connections that are being used as stillsaved_for_reuse
. -
Studio: Fixed an issue where some valid UTF-8 files would fail import validation.
GreenArrow v4.279.0
-
Added a new SMTP logging option log_smtp_timings.
-
Delivery attempt events will now include the message size in bytes (if loaded).
-
Delivery attempt events may now include SMTP timing in nanoseconds (if log_smtp_timings is enabled).
-
The Remote Delivery Status Log now includes average message sizes.
-
Fixed an issue in
hvmail_unmanaged_backup
where an error could be reported ifrpm
is installed on a Debian or Ubuntu system. This error did not affect backup taken.
GreenArrow v4.278.0
-
Fixed an issue where only half of the legacy event processor would use CPU resources when concurrency was in use.
-
Fixed an issue where
bounce_bad_address
events generated by the repeat bounce counting system would not include the most recent bounce’sclick_tracking_id
value (instead it would benull
). -
Fixed an issue where the retry_time_randomize and extra_delivery_attempts_after_conmmaxout were not working correctly when configured within the virtual_mta_injected directive.
-
Studio: Speed up subscriber import creation by deferring file encoding validation for files larger than 1MB. Deferred validation means that a bad import file may fail after it has been scheduled.
-
Add new bounce processor rules.
-
Engine UI: Fixed an error where multiple “invalid sign-in” messages could appear when sign-in fails.
-
Studio: Fixed a graphical error in an organization’s “Invalid Selections” table.
-
greenarrow_config reload
andgreenarrow_config validate
will now warn if the kernel parameternet.core.somaxconn
is too low for the requested SMTP concurrency. -
Added a new command
greenarrow config recommend_sysctl
that will print recommended sysctl settings, including the recommended value fornet.core.somaxconn
.
GreenArrow v4.277.0
-
Fixed an issue wherein a broken
pipe_command
configured in the Delivery Attempt Log could lead to long-running transaction locks being held (which in turn could causehvmail_migrate migrate
to fail after upgrades). -
Studio: Fixed an issue that could result in campaigns failing if a subscriber included in that campaign is deleted while the campaign is sending.
-
Fixed an error reported by
greenarrow_blockers
if rpm was installed on a Debian-based operating system. -
Studio: The “DEACTIVATE SUBSCRIBERS NOT IN IMPORT” option on subscriber imports is now protected behind a confirmation dialog to prevent users from accidentally enabling this dangerous feature.
-
Engine API: Added a new API for pausing and dumping send queues.
GreenArrow v4.276.0
-
GreenArrow will now more quickly retry messages that are deferred due to
connmaxout
(i.e. delivery attempts that are throttled). This behavior can be tuned with the new extra_delivery_attempts_after_conmmaxout configuration directive. -
GreenArrow will now schedule a message’s next delivery attempt based on the current time, rather than the time the previous delivery attempt started.
-
The disk queue can now have its own (optional) backlog setting.
-
Added new configuration directive for applying some randomization to custom retry schedules.
GreenArrow v4.275.0
- Added new configuration directives for filtering events by mail class or listid when delivering events using the new Event Processor.
-
Fixed an issue in the Engine UI where sometimes attempting to delete a record (for example a DKIM Key) could lead to an error instead of successful deletion.
-
Fixed an issue in the legacy event processor where non-legacy events can be written to logfiles (as written by the logfile configuration option in the legacy event processor).
-
Fixed an error emitted by
greenarrow_config reload
that could occur when defining Engine configuration objects in the configuration file. -
Studio: The subscriber import view page now indicates whether or not the “Deactivate Subscribers Not In Import” setting was used for this import.
-
Fixed the HTTP Submission API to properly wrap base64 encoded attachments in the generated message.
- Optimize Engine API call authorization speed when using legacy Engine users.
GreenArrow v4.274.3
- Fixed presentation of IP Addresses with more than 100 IPs.
GreenArrow v4.274.2
- Fixed an issue that could prevent access to the Engine statistics screen on web browsers with saved HTTP basic credentials.
GreenArrow v4.274.1
-
Fixed an issue preventing access to the Engine statistics screen on Centos 7 when HTTP is redirected.
-
Fixed an issue where internally created campaigns (campaigns created by GreenArrow for the bounce messages it creates) could have inaccurate send statistics when the bounce queue is at capacity.
-
The Studio split campaign statistics screen will now properly download CSV reports for only the part of the split that is currently loaded.
-
Restored view links in the “References to This IP Address” table.
-
Fixed a permission error encountered when editing throttling rules on the Dynamic Delivery screen.
GreenArrow v4.274.0
-
Engine users are now defined in the UI / API or configuration file (instead of an htpasswd file).
-
Engine authentication is now accomplished via a login screen (instead of HTTP Basic authentication).
-
Both Engine and Studio now support two-factor authentication.
-
Introduced the following configuration directives for defining Engine users in the configuration file:
-
Docker integration will no longer create an
admin
Engine user account when initializing a new container. Instead,GA_ADMIN_EMAIL
will be used as the initial administrator account username. -
Studio: The Get a List of Campaigns API now accepts a
state
parameter for filtering the results by the requested state(s). -
Added a new configuration directive lets_encrypt_service_restart_delay for delaying how frequently GreenArrow’s Let’s Encrypt integration can restart background services.
-
Fixed an issue in Studio’s subscriber domain segment. When using the
does not end with any of
operator, the segment returned the wrong set of subscribers when provided with multiple suffixes. -
Fixed an issue when purging Studio organizations that would cause all subscriber imports to be pulled into memory, sometimes leading to out-of-memory errors on organizations with extremely large numbers of imports.
-
Fixed an error in Studio’s suppressed addresses API when adding multiple suppressed addresses with the same address, differing only by leading or trailing whitespace.
-
Applied a patch to Apache to optimize loading configuration on systems with thousands of URL domains and thousands of IP addresses.
-
Fixed an issue in the bounce processor where messages that failed due to DNS resolution could erroneously be categorized as a hard bounce.
-
Fixed domain name security to be case-insensitive, protecting links against web clients that lowercase domain names.
GreenArrow v4.273.0
-
Studio will now check for the user permission “Subscribers Search/View” for the “View result for each message” screen in the SMTP section of statistics. This closes a hole where such users were able to access the list of SMTP recipients.
-
Fixed an issue in Studio’s content editor where the “Convert from HTML” button for text parts could fail if the converted text content had not changed from what was previously saved.
-
Fixed a performance regression to Studio’s subscriber imports introduced in GreenArrow v4.271.0 when neither of the
studio_subscriber_created
norstudio_subscriber_updated
events are in use. -
Fixed an issue in Studio where a custom field value of
null
(case insensitive) would store as blank.
GreenArrow v4.272.0
-
Fixed an issue wherein local deliveries in MultiQueue batches would fail.
-
Updated the
hvmail_snapshot_stats
command to be more resilient to execution environment. - Expanded event selection syntax in the new Event Processor. You may now specify that you want “all” events, minus specific events (i.e.
event_delivery_events all delivery_attempt=no
). - Updated our documentation to add a guide on how to Upgrade From Legacy Event Processor.
GreenArrow v4.271.0
-
Studio: Subscriber exports will now be automatically purged 30 days after the export finishes. This will prevent endless disk usage by subscriber exports.
-
Fix an issue introduced in GreenArrow v4.270.0 that would prevent
studio_subscriber_created
andstudio_subscriber_updated
events from being generated in the new event processor.
GreenArrow v4.270.0
- Added a new Event Processor for delivering events to HTTP/HTTPS endpoints. This new event processor is configured by the following configuration directives:
- event_delivery_destination
- event_delivery_url
- event_delivery_events
- event_delivery_delivery_attempt_config
- event_delivery_anonymize_localparts
- event_anonymization_constant
- event_delivery_max_concurrent_connections
- event_delivery_max_batch_size
- event_delivery_timeout
- event_delivery_client_certificate_file
- event_delivery_verify_peer
- event_delivery_disable_batching
- event_delivery_http_keepalive
- event_delivery_http_user_agent
- event_delivery_format
- event_delivery_serialize_all_columns
-
Legacy Event Notification System Configuration now requires you to run
greenarrow_config reload
after modifying the events that GreenArrow should be generated. -
Added a new configuration directive (server_id) for specifying a server ID. This value is included in events, useful for discerning multiple servers from each other.
-
Direct access to the Postgres database
events
table now has the following caveats:-
When querying from the
events
table, you must adddestination_id=1
to the conditions of your WHERE clause. This will cause any events configured using the event_delivery_destination directive to be excluded. -
When updating or deleting from the
events
table, you must addid = ?
to the conditions of your WHERE clause, only updating or deleting events you’ve already pulled down.
-
-
Added new commands for viewing the status of the GreenArrow events queue. Each of these commands accepts a
--json
argument to get JSON output instead of a user-friendly ASCII table.greenarrow events status
greenarrow events hourly_queue
- Fixed an issue where a misconfiguration of StatsD Integration could bring down the user interface.
GreenArrow v4.269.0
-
GreenArrow has a new bounce categorizer. This new categorizer is more accurate and supports a new bounce_processor_rule configuration directive for specifying your own bounce code overrides.
-
Studio: Restored
stat_id
that was previously available in the Get Campaign Details API. This was a regression in GreenArrow v4.248.0. -
Studio: Fixed an issue with the subscriber importer where upper-cased domains containing non-ASCII Unicode characters would fail upon re-import.
-
The following commands will now warn you if you haven’t run
hvmail_migrate
after upgrading GreenArrow packages:hvmail_init status
,greenarrow_status
, andgreenarrow_config reload
-
Studio: Fixed an issue where the “Deactivate Subscribers Not In Import” feature could sometimes cause a Postgres deadlock and fail the import.
GreenArrow v4.268.0
-
Updated
greenarrow_blockers
to warn you if your license key’s Support & Updates term has expired. This makes it harder to accidentally upgrade to a version of GreenArrow that isn’t supported by your license key. (Perpetual licensees have a perpetual right to use the software released while they maintained Support & Updates, but are not licensed to use versions released after the end of their Support & Updates term. This is enforced by the GreenArrow license key.) -
Studio: Added a new API for estimating the number of recipients in a campaign.
-
Added new possible return action
new_config
to Running Custom Code During Delivery Attempts. You can use this to override the VirtualMTA or envelope sender of the email. -
Fixed an issue where extra metadata was included in the
sender
key to Running Custom Code During Delivery Attempts. -
Add new attribute to the HTTP Submission API
amp_html
for injecting mail that uses AMP for Email. -
text/x-amp-html
parts of SimpleMH emails will now have click and open tracking applied to it (when enabled). This applies equally to email submitted using the newamp_html
of the HTTP Submission API and for emails injected via SMTP. -
Add support for the RedHat 9 and Alma Linux 9 Linux distributions.
-
Fix problem with removing base64 padding from DKIM public keys. Removing this padding was not RFC-compliant and was causing some systems to not validate 4096-bit keys.
GreenArrow v4.267.0
-
Engine: Added a new API for retrieving the status of throttles and to take throtles out of backoff mode.
-
Engine: Added UI buttons to take throttles out of backoff mode.
-
Added a new configuration directive smtp_match_begin_backoff_mode for engaging SMTP backoff mode using a regular expression.
-
Fixed presentation of times in Engine’s throttle screens (these times were previously printed in UTC – they now respect the engine_time_zone configuration).
-
Ending of SMTP Backoff mode is now evaluated every few seconds instead of purely on 5-minute intervals. This means that backoff mode ending times are no longer rounded to the closest 5 minutes.
-
Fix typo in error message for override_smtp_result.
-
Studio: Fix for autoresponder “Download Overview CSV” report. It previously wouldn’t honor the date range selected, instead loading all stats for the autoresponder.
GreenArrow v4.266.0
-
GreenArrow will no longer attempt to exceed the limits specified by the sysctl parameter
kernel.sem
when setting postgres_max_connections. See this document on tuning kernel.sem for more information. -
Studio: Replacement codes intended for usage by the Autoresponder trigger API can now include a
:raw
suffix (e.g.%%api:first_name:raw%%
) to skip HTML/URL encoding of the replaced content. -
Fix support for values of
/var/hvmail/control/queue.ram.concurrencyremote
or/var/hvmail/control/queue.disk.concurrencyremote
above int16max (32767). -
Removed a dead symlink
/var/hvmail/apache/htdocs/assets/highcharts.js
– this could cause warnings when runninghvmail_server_migration
.
GreenArrow v4.265.0
-
Studio: Adding addresses to a suppression list when they already exist is no longer a validation error. This will not produce duplicate records.
-
Improvements to the Event Notification System’s automatic table bloat cleaner.
-
Added a new configuration directive disable_automatic_shrink_events_table to disable the Event Notification System’s automatic table bloat cleaner.
-
Update language when deleting mailing lists to be clear that it will break links in campaigns that have already been sent with click-tracking enabled.
GreenArrow v4.264.0
-
Engine: SimpleMH click tracking statistics now consider uniqueness based on click tracking ID, in addition to email address.
-
Studio: Fixed presentation of statistics when all bounces are recorded as remote.
-
Increased the recommendation (or dynamically chosen value) for postgres_max_connections to account for additional configuration parameters that can affect Postgres utilization.
-
The CloudFlare header
CF-Connecting-IP
is now supported in addition toX-Forwarded-For
andClient-IP
. -
The files
/var/hvmail/control/studio.trusted_proxy_ips
and/var/hvmail/control/opt.engine.trusted_proxy_ips
now support CIDR ranges (in addition to specific IP addresses). -
Add new bounce processor rules.
-
Add support for the Ubuntu 22.04 Linux distribution.
-
Increased the allowed CPU and IO utilization of pre-processing Engine per-campaign statistics (to increase the priority of keeping statistics up-to-date).
-
Reverted default of dkim_sign_canonicalization_mode to be “relaxed” because we found that “simple” could cause an impact on deliverability in rare cases.
-
Studio: Fixed an issue that could prevent suppression lists from being deleted when referenced by segments on deleted mailing lists.
GreenArrow v4.263.0
- Added a new configuration directive override_smtp_result for overriding the SMTP result of a remote delivery using a regular expression.
GreenArrow v4.262.0
- Studio: Fixed an issue where quickly pausing and resuming a campaign with a slow sending speed could result in the campaign still being in a paused state.
GreenArrow v4.261.0
-
Added a new command greenarrow engine_clicks_opens_delete for deleting old Engine clicks and opens data.
-
Studio: Added ability to delete subscribers via the UI and API.
- Studio: Introduced a new configuration directive to prevent the deletion of subscribers:
-
Performance boost to injection and delivery.
- DKIM signing now by default uses “simple” canonicalization instead of “relaxed”. The following configuration directive is available to override this behavior.
GreenArrow v4.260.0
- Introduced several new configuration directives that control how messages are written to the disk queue.
- The following undocumented configuration files have been replaced by the directives listed above.
/var/hvmail/qmail-ram/control/rspawn-limiter.msgmover.maxmessages
/var/hvmail/qmail-ram/control/rspawn-limiter.msgmover.maxtime
/var/hvmail/qmail-ram/control/rspawn-limiter.msgmover.maxprocs
- The following documented configuration file has been replaced by the disk_queue_writer_fsync directive listed above.
/var/hvmail/control/opt.queue_no_fsync
-
If any of the above configuration files were in a non-default state, an entry setting the overrided value will be added to
/var/hvmail/control/greenarrow.conf
when you runhvmail_migrate migrate
. -
The default value for disk_queue_writer_concurrency is changing from 5 to 20. This may help performance for systems with large amounts of messages that are written to the disk queue. The value of 20 works much better for SSDs, which most installations of GreenArrow use. Spinning magnetic media hard drives might get better performance with lower values.
- Studio: Added an appropriate error when attempting to make non-global a suppression list which is used by the system configuration for automatic suppression.
GreenArrow v4.259.0
-
Added a new configuration directive simplemh_generate_click_tracking_id for automatically generating a click tracking ID in SimpleMH.
-
Studio: Added an
alt=""
attribute to the Google Analytics image tags. -
Studio: Fixed an issue where
%%subscriber_id%%
would not be replaced in Google Analytics image tags.
GreenArrow v4.258.0
-
Fixed an error when clicks or opens did not include a user agent.
-
Updated the
hvmail_snapshot_stats
command to not requirePATH
to be set. -
Reduced memory utilization of SimpleMH when injecting exceptionally large messages.
GreenArrow v4.257.0
-
Update default throttling template to include RoadRunner for new installations.
-
Fixed issue where SimpleMH would encode trailing whitespace into click tracking URLs, instead of stripping it.
-
Add new bounce processor rules.
GreenArrow v4.256.0
-
Studio: Fixed an issue where the responsive editor’s button components did not do click tracking when clicked in Microsoft Outlook.
-
Studio: Added semicolons as a supported subscriber import delimiter (in addition to commas and tabs).
-
Added support for TLS 1.2 connections to MS-SQL server in the event processor.
GreenArrow v4.255.0
-
Engine: Fixed a UI issue where new routing rules did not contain a default blank entry.
-
Studio: Fixed an issue where the “Portion” segmentation rule did not accept floating point numbers for the upper and lower bound over the API.
-
Engine: Fixed an issue with updating certain throttling rules from the command line.
GreenArrow v4.254.0
-
Prevent injection of emails using
qmail-inject
, SMTP, and HTTP Submission API to email addresses with blank localparts. -
Permit
List-Help
in custom headers in both Studio and SimpleMH. -
The Event Notification System will now automatically free up table bloat from the
events
queue table.
GreenArrow v4.253.0
-
studio_open
andengine_open
events now include anis_privacy_open
attribute. -
Studio: Added ability to segment on whether or not an open was a privacy or non-privacy open.
-
Studio: Added ability to segment on Autoresponder opens.
GreenArrow v4.252.0
-
Added a new command greenarrow print_disk_queue for viewing what’s currently in the disk queue.
-
Introduced a new configuration directive engine_time_zone for setting the time zone in Engine. This replaces a variety of other mechanisms for configuring the time zone in Engine.
-
Added a new configuration directive dkim_sign_ignore_header to skip selected headers when DKIM signing.
-
Improve warnings issued by
greenarrow_config
when the number of Postgres connections configured doesn’t line up with the number of connections that may be required.
GreenArrow v4.251.0
-
Studio: Introduced a new field on the Subscribers API
apply_custom_field_defaults
to allow API users to take advantage of custom field default values. -
Studio: Fixed an issue where subscriber imports could leave temporary data behind permanently, leading to bloat in GreenArrow’s internal Redis server.
GreenArrow v4.250.0
- Studio: Fixed an issue where subscriber imports that use the “deactivate subscribers not in import” feature could become stuck and not complete.
GreenArrow v4.249.0
-
Improved the suppression list search tool to allow for deleting suppressed addresses, making it easier to find and remove addresses from suppression lists.
-
The mailbox password is no longer included on Engine’s Mailboxes API. This may break some integrations.
-
Added the configuration directive mailbox_password_encoded to avoid putting raw passwords into
greenarrow.conf
. -
Allow Studio campaigns to scheduled with zero recipients. Campaigns that send to zero recipients will also not send to its seed lists.
-
Fixed an error in our legacy support for EDM Designer, restoring operation.
-
Added new configuration directives replace_content_domain_applies_to_from_domain and replace_content_domain_applies_to_reply_to_domain.
GreenArrow v4.248.0
-
Added privacy protection statistics to the Autoresponders API.
-
Speed improvements to segment creation on systems with many historic campaigns.
-
Prevent an issue where a slow loading segment could be overwritten if the user clicks on “Use this segment” before the segment loads.
GreenArrow v4.247.0
-
The SimpleMH click and open tracking domain can now optionally be specified using the X-GreenArrow-URL-Domain header.
-
Studio: Add whether an open was a privacy open to the subscriber activity screen.
-
Numeric custom fields will now be presented to Studio Special Sending Rules as integers (instead of a string containing an integer). This fix is to eliminate a difference between what the SSR “Preview” shows and what the SSR actually receives when sending a campaign.
GreenArrow v4.246.0
-
Added the from address to the Delivery Attempt Log and Delivery Attempt Event.
-
Added a new configuration directive log_header for adding specific message headers to the Delivery Attempt Log and Delivery Attempt Event.
GreenArrow v4.245.0
-
Update third-party software that ships with GreenArrow:
-
Routing rule interfaces will no longer reorder when editing in the user interface.
-
The “b” format is now the default click and open tracker URL format for X-GreenArrow-Tracker-Format. We discovered that the “b” format receives fewer bot clicks than the old default “a” format.
This can be overrided globally using the
/var/hvmail/control/opt.simplemh.tracker_format
configuration file (see the link above for more information).
GreenArrow v4.244.0
-
Fix alignment of new message lines in Engine dynamic delivery charts.
-
Added queue files that were previously generated at the time of installation to the RPM / Debian packages.
-
Fixed an issue when images with the same name were deleted and re-uploaded in the responsive content editor.
GreenArrow v4.243.1
- Fixed an issue with delivery attempt logs and events when the system clock was very far in the past.
GreenArrow v4.243.0
-
Add an option
pipe_command
to the Delivery Attempt Log. This is used to deliver delivery attempt logs to a program instead of (or in addition to) a file. -
Fixed incorrect reporting in Engine of “Recipients Clicked (Unique Clicks)”.
-
Added privacy protection statistics to Studio’s “Download Overview CSV” stat report.
-
Reliability improvement in first delivery attempt queueing that addresses a rare corner-case.
-
Added support for
greenarrow_status apache_status
when/var/hvmail/control/httpd.listen
is configured to a port other than 80. -
Fixed a broken path to a loading animation in Engine’s user interface.
GreenArrow v4.242.0
-
Updated default throttling template on new installations to use MX throttling.
-
Studio: Added two new replacement codes
%%data_url_domain%%
and%%data_url_domain_with_protocol%%
. -
Fixed an erroneous warning printed by
greenarrow_config
when replace_content_domain and disable_validating_domain_in_tracking_security are used together. -
Allow
Content-Type
to beapplication/json; charset=utf-8
in the HTTP Submission API. -
Update third-party software that ships with GreenArrow:
- Apache from 2.4.48 to 2.4.51
-
Fixed an issue with old disk-queue messages where they could get stuck in the queue when the internal message ID exceeded 32-bit integers. Any such messages will either send or expire once GreenArrow is upgraded to this release.
-
Fix position of popup in Engine’s “SMTP Server Stats” screen. It was appearing very low on the screen, impacting smaller screen sizes.
-
New installations of GreenArrow now have starttls_use enabled by default.
-
If you haven’t edited your greenarrow.conf, you will get the new default version of this file with starttls_use enabled.
-
GreenArrow recommends enabling starttls_use if you haven’t already done so. This is done with the following configuration directive:
ip_address * { domain * { # Use STARTTLS when it is available. starttls_use yes } }
GreenArrow v4.241.0
- Fixed an issue that prevented the studio_user_login_lockout_attempt_window and studio_user_login_lockout_duration directives from functioning properly.
GreenArrow v4.240.0
-
Added support for throttling and delivery configuration based upon the resolved MX hostname. See the domain configuration directive or Throttling more information.
-
Added a
**super**
ip_address context for overriding all other configuration that would otherwise apply to a delivery attempt. -
All delivery attempts now perform an MX lookup on the recipient domain - even when routing through a relay server. This is done in order to support the
mx:
syntax in throttling and routing rules. -
The delivery_override directive now accepts an optional second argument for customizing the message that will appear in the delivery attempt log.
GreenArrow v4.239.0
-
Added a new table to Engine and Studio statistics that breaks down opens between “All subscribers”, “Subscribers using privacy features”, and “Subscribers not using privacy features”.
This is intended to help with the impact of privacy features such as iCloud+ Private Relay and Mail Privacy Protection. Privacy features, when enabled, can automatically load and cache all images in a recipient’s incoming email – including tracking pixels. Additionally, when the email is actually read, no images are loaded from the server but instead served from this cache. This has the effect of artificially inflating open rates.
The new table will enable you to see an open rate that is roughly comparable to current open rates (that is, the unique open rate for “Subscribers not using privacy features”).
GreenArrow v4.238.0
- Add support for the Debian 11 Linux distribution.
GreenArrow v4.237.0
-
GreenArrow now includes the domain name in the anti-tamper protection in links created for click tracking, to prevent abuse of the link redirector service. Anti-tamper protection detects if the destination URL, the subscriber, or campaign details are tampered with, and returns an error to the user if the link was modified.
Including the domain name in anti-tamper protection is useful for email service providers, where one customer could send a link to themselves, capture that link, modify it to use a different domain name belonging to the ESP or another of the ESP’s customers, and then send spam using the modified link – hijacking a domain’s reputation to which they were never supposed to have access.
This release closes this loophole and helps to protect domain reputation.
-
Added the configuration directive disable_validating_domain_in_tracking_security to disable this behavior.
-
Added the configuration directive disable_validating_all_tracking_security which is intended for use when debugging issues related to proxy servers or load balancers in front of GreenArrow as a result of the new domain security enforcement.
-
WARNING Proxy servers or load balancers in front of GreenArrow must provide the
X-Forwarded-Host
header which advises click and open tracking the originally requested domain name by the client. If you use a proxy server or load balancer in front of GreenArrow, please read this section of our HTTP Server documentation before upgrading. -
WARNING If you use the configuration directive replace_content_domain, you must also enable disable_validating_domain_in_tracking_security in order for click and open tracking links to function properly.
GreenArrow v4.236.0
-
Fixed an issue that could cause the ram-queue to be filled, causing message injection to fail.
-
Fixed an issue where Studio was not using the “default” key in the bounce processor configuration – this caused Studio bounces to not apply custom bounce processor configuration properly.
-
Fixed an issue where delivery to domains with malformed MX records would defer instead of using available valid MX records.
-
Restored missing “Subscriber Clicked Any Campaign/Autoresponder” segment option.
-
Add new bounce processor rules.
GreenArrow v4.235.1
-
Fixed an error in Studio’s link tracking. This error could cause multiple links (in GreenArrow’s database) to be created for the same URL, resulting in incorrect reporting and segmentation of subscriber clicks.
-
Fixed an issue that caused the “View” button in the campaign content editor to not work with Remote Lists.
-
Fixed an issue that would cause GreenArrow to not start up automatically after a reboot on Debian when installed on a separate partition.
GreenArrow v4.235.0
-
Add new bounce processor rules.
-
Corrected the presentation of GreenArrow’s license type in Studio’s “System Configuration” page (next to the version number). Servers with older license keys will not show the previously incorrect value. New license keys will show the correct license type.
GreenArrow v4.234.2
-
Fixed an issue where if SimpleMH was configured with
$CLICKTHROUGH_URL
ending in/click.php
instead of/click
theList-Unsubscribe
header tag would be generated incorrectly. This fix is backward compatible with the incorrect links that were sent. -
Add new bounce processor rules.
GreenArrow v4.234.1
- Internal changes for GreenArrow Cloud.
GreenArrow v4.234.0
-
SimpleMH now supports multiple click and open tracker URL formats. See the X-GreenArrow-Tracker-Format documentation for more information.
-
Fixed an error in reporting of the disk queue size by
greenarrow disk_usage
when the disk queue is heavily used. -
Studio: Added support for autoresponders in both the “Subscriber Clicked Campaign” (now labeled as “Subscriber Clicked Campaign/Autoresponder”) and “Subscriber Clicked Link” clauses.
GreenArrow v4.233.1
- Fixed an issue where a queue was not flushed and a small percentage of messages could be lost in specific configurations.
GreenArrow v4.233.0
- Internal changes for GreenArrow Cloud.
GreenArrow v4.232.0
-
Added a new delivery_paused configuration directive. This is also available on the UI and API. This configuration will cause deliveries from a specific IP address to be paused in a fashion similar to the effect of pausing deliveries of individual sends in Engine’s UI.
-
Reduced GreenArrow’s CPU utilization when the disk queue has been idle for a long period of time.
GreenArrow v4.231.0
-
Added a new configuration directive replace_content_domain for changing domain names in content at the time of delivery based upon the IP Address or Relay Server used for delivery. See our documentation about this feature for more information.
-
Studio will now send remaining seeds “as fast as possible” once all campaign recipients have been sent. This fixes an edge case where you could pause a campaign after it had sent to all recipients (excluding seeds), leading to the campaign crashing.
GreenArrow v4.230.5
- Fixed an issue in Studio’s TinyMCE editor where the “Campaign Images Browser” would spin forever after uploading a new image.
GreenArrow v4.230.4
- Fixed an issue regarding migrations when upgrading from very old versions of GreenArrow. Previously individual migrations might call
greenarrow_config reload
; instead, this is now performed automatically afterhvmail_migrate migrate
is run.
GreenArrow v4.230.3
- Fixed an issue where the
GREENARROW_LOG_SMTP_COMMANDS
debug logging option on SMTP services would cause all authenticated incoming SMTP sessions to fail.
GreenArrow v4.230.2
- Fixed a UI error when viewing IP addresses and no settings were present in
greenarrow.conf
.
GreenArrow v4.230.1
-
Added an option file
/var/hvmail/control/opt.simplemh.debug
to enable more detailed logging in the SimpleMH service. -
Fixed a bug in the suppression list user interface where you could errantly get a “Mailing List cannot be set” error.
GreenArrow v4.230.0
-
SimpleMH will now always report the user agent of clicks and opens in the engine_click and engine_open Events. This was formerly controlled by the value of the
/var/hvmail/control/opt.simplemh_tracking_include_user_agent
file. -
Marketing Studio will now report the user agent of clicks and opens in the studio_click and studio_open Events.
-
Added a new
synchronous
attribute on bounce_all Events. -
Studio: Add a new type of suppression list that is not applied by default. See our Suppression List documentation for more information.
-
Studio: Add a segmentation criteria “Not In Suppression List” that can be used to segment on the new type of suppression list.
-
Increased the number of open files that Passenger may open. This resolved an issue where the web interface could display “Internal server error” instead of the requested content when under a high load.
-
Added support for RFC 8058 (List-Unsubscribe-Post) three ways.
-
SimpleMH: Added support for a
X-GreenArrow-List-Unsubscribe-HTTP-URL-Post
header.- If you are specifying a HTTP/HTTPS URL to be used in the
List-Unsubscribe
header by using theX-GreenArrow-List-Unsubscribe-HTTP-URL
header, then you can now also specify the value of theList-Unsubscribe-Post
header by adding aX-GreenArrow-List-Unsubscribe-HTTP-URL-Post
header. - The value of
X-GreenArrow-List-Unsubscribe-HTTP-URL-Post
will set theList-Unsubscribe-Post
header in the final message. - If
X-GreenArrow-List-Unsubscribe-HTTP-URL
is not specified, this header will not be used.
- If you are specifying a HTTP/HTTPS URL to be used in the
-
SimpleMH: If
X-GreenArrow-List-Unsubscribe-HTTP-URL
is not specified, an HTTPS unsubscribe link will be added toList-Unsubscribe
automatically.- Previously, the
List-Unsubscribe
header added by SimpleMH included only amailto
address. - Now, the
List-Unsubscribe
header added by SimpleMH will also include an HTTPS unsubscribe link and aList-Unsubscribe-Post
header will be added as well. - That unsubscribe link requires confirmation unless a POST is issued to it.
- Previously, the
-
Marketing Studio: All email sent from Marketing Studio will now include the
List-Unsubscribe-Post
header.- This header enables one-click unsubscribe workflows in some email readers.
- Previously, Marketing Studio’s unsubscribe page never required confirmation when
using the HTTPS unsubscribe link found in the
List-Unsubscribe
header. With this release, a confirmation click will be required if the user has JavaScript is disabled.
-
GreenArrow v4.229.1
- Fix an issue introduced in v4.228.2 where in Engine’s “SMTP Server Stats” tab, the popup of Failure messages failed to dismiss.
GreenArrow v4.229.0
-
Add support for the Ubuntu 20.04 Linux distribution.
-
Add the
hvmail_snapshot_stats
command which, records system statistics snapshots for GreenArrow support. -
Make the hvmail_unmanged_backup command ignore sockets recently added to GreenArrow. Before this release, the new sockets caused the script to print two harmless
socket ignored
notices.
GreenArrow v4.228.3
-
Make the permissions of the
/var/hvmail/studio/gems
directory more restrictive. -
Update PHP from 7.3.28 to 7.3.29.
GreenArrow v4.228.2
-
Fixed a visual issue in the Engine “sends” page where a long send name could cause the table to appear broken.
-
Performance optimization to the “Distribute Unsubs / Bounces / Spam Complaints” feature.
-
Upgrade jQuery to 3.6.0
GreenArrow v4.228.1
-
Update third-party software that ships with GreenArrow:
GreenArrow v4.228.0
-
GreenArrow now supports version 1 of HAProxy’s PROXY Protocol for SMTP delivery. This is configured with the proxy_server directive. See the Proxy Protocol documentation for more information.
-
The “SMTP Server Stats” each-message report can now be filtered by the SMTP result code.
-
Fix an issue where messages injected while the GreenArrow MTA is being restarted could show up twice in statistics.
-
Fixes in preparation for an upcoming conversion of subscriber IDs to be 64-bit integers.
GreenArrow v4.227.3
- Add a missing package to dependencies: shared-mime-info
GreenArrow v4.227.2
-
Eliminate the fade-on-hover effect on the dynamic delivery charts.
-
Fixed an issue that could cause autoresponders to send duplicate messages.
GreenArrow v4.227.1
- Fixed an issue introduced in v4.227.0 which caused some SMTP log messages to be logged incorrectly.
GreenArrow v4.227.0
-
Delivery Attempt Events now include
mx_hostname
andmx_ip
. -
Updated the processed logfile format to include
mx_hostname
andmx_ip
. -
Add option file
/var/hvmail/control/opt.send_api_debug_log
to write details about HTTP Submission API requests to the Apache error log.
GreenArrow v4.226.1
- Reduce memory requirements of downloading Marketing Studio campaign/autoresponder statistics.
GreenArrow v4.226.0
-
Add support for 2048-bit DH keys to GreenArrow’s SMTP services.
-
Add new bounce processor rules.
-
Fix a bug where NUL bytes (0x00) in a subscriber import would cause the import to fail.
GreenArrow v4.225.0
-
Fix a bug that prevents the default HTTPS VirtualHost from loading the intermediate certificate specified by tls_certificate_files.
-
The control file
/var/hvmail/control/opt.simplemh_tracking
was previously an undocumented feature that enabled both/var/hvmail/control/record_events.simplemh.open
and/var/hvmail/control/record_events.simplemh.click
. This file has been removed. If the file was enabled, the two individual control files will be turned on. -
/var/hvmail/bin/logdir_select_time
now supports LZOP compressed log files. -
Fix an issue with GreenArrow Docker integration where initialization of new volumes would fail on recent releases.
GreenArrow v4.224.0
-
Expand the ability to import and export throttle rules on the command line to support Throttle Templates. Previously, only throttle rules assigned to specific IP addresses could be imported and exported.
-
Remove the “Fullscreen” menu option when TinyMCE is launched from the campaign editor. That editor is already fullscreen and using it caused a graphical glitch.
GreenArrow v4.223.0
-
GreenArrow has a new disk-queue. This disk-queue uses a new data format. Your existing queue will be automatically converted to the new format. If you run into trouble and choose to downgrade, follow the downgrade instructions here.
-
Messages will no longer receive a final delivery attempt after expiring. Instead, the expiration time is compared to the next retry time after each delivery attempt. If the next retry time is beyond the expiration time, the message is treated as expired and bounces.
-
Added retry_time directive for overriding the retry time of messages on a per-VirtualMTA and/or per-domain basis. Using this directive, you can specify your own retry schedule.
-
Added queue_lifetime directive for overriding how long messages will be retried on a per-VirtualMTA and/or per-domain basis.
-
Fix a bug that caused
hvmail_report
’s processed logfile format to omit the SendSliceID field unless the--human
option was used. This could break compatibility for integrations depending on the order ofhvmail_report
’s output of the last 3 fields (SendSliceID, throttleid, and clicktrackingid).
GreenArrow v4.222.0
- Update the SMTP sink service to use GreenArrow Sink. This change speeds up the sink service. The sink no longer delays delivery by 1 second.
- Studio: Fixed an issue causing Special Sending Rule previews to falsely claim a URL domain or bounce email was deleted.
GreenArrow v4.221.0
- Internal changes for GreenArrow Cloud.
GreenArrow v4.220.2
- Studio: Campaign attachments will now have the correct Content-Type set for Microsoft Office documents.
GreenArrow v4.220.1
-
SimpleMH: Fixed an issue where HTML entities that don’t end in semicolons would be decoded when click tracking. For example, HTML with a link to
http://example.com/?a®=123
would be decoded ashttp://example.com?a®=123
. HTML entities now must end in a semicolon to be decoded. -
Engine: Fixed an issue in the event processor where a remote database connection that has encountered an error would continue to be tried.
GreenArrow v4.220.0
-
Add a new soft bounce rule to the bounce processor.
-
Update third-party software that ships with GreenArrow:
GreenArrow v4.219.0
-
Add a tool for viewing the remote connections that are currently open from the MTA. See this documentation for more information.
-
Engine: Update the HTTP Submission API to allow setting a custom Date header with the
headers
hash. -
Studio: Users can now change their default campaign HTML editor. This option does not affect existing campaign contents. See our user documentation for more information.
-
Engine: Make the hvmail_init status command report on the disk-queue’s
ok
file status. It previously only reported that file’s status for the ram-queue and bounce-queue. -
Studio: Updated SQL used by some segmentation criteria that could lead to slow starts to campaigns.
GreenArrow v4.218.0
-
Fix a configuration issue that could allow anonymous FTP logins if the
/var/ftp/
directory exists. -
Engine: smtpd services will now log a message that looks like this when it cannot parse AUTH input:
smtpd: smtp-auth authentication failure from (HOST) for username (unknown) with reason (malformed auth input)
-
Fixed an issue where some DKIM keys may not be used for signing.
GreenArrow v4.217.0
-
On December 14-15, 2020, Google sent out “The email account that you tried to reach does not exist” bounces for valid email addresses. This caused any such email addresses sent to during this time to be considered a bad address and deactivated.
We’ve added a greenarrow bounce_recovery tool to enable recovery from these erroneous bounces.
This page dedicated to the December 2020 Gmail Outage details how to recover from this specific outage.
-
Studio: Fixed an issue that prevented API keys that had created subscriber imports from being deleted.
-
Studio: Fixed an error that could appear in TinyMCE related to subscriber quotas.
-
Engine: Incorporated a new DKIM library that will eliminate sporadic generation of invalid signatures.
-
Engine: Changed the default DKIM signing algorithm from SHA1 to SHA256. The applies to both new and existing installs.
GreenArrow v4.216.0
- Added new columns to the Campaign Statistics Index export file:
- Campaign ID
- Subject (newline separated when more than one is present)
- Accepted
- Total Renders / Opens
- Total Render / Open rate
- Total Clicks
- Total Clicks rate
- Segment (if a named segment was used)
-
Added the number of “Accepted” messages to Studio’s statistics index.
- Fixed an issue wherein GreenArrow’s “Received:” header could simply be written as “Received: from unknown”.
GreenArrow 4.215.0
-
Fixed CVE-2011-0411: Plaintext command injection in multiple implementations of STARTTLS
-
Add support in User Defined JavaScript for Extending BEE Custom Rows with content dialog.
GreenArrow 4.214.0
-
GreenArrow can now run in SELinux permissive mode. Before this release, SELinux had to be disabled. SELinux enforcing mode remains unsupported.
-
Upgrade GreenArrow’s version of Highcharts to the latest release - 8.2.2.
GreenArrow 4.213.0
-
Upgrade TinyMCE to the current release (5.5.1).
-
Updates to the following third-party software that ships with GreenArrow:
GreenArrow 4.212.0
-
Studio: Anniversary autoresponders in Studio were using their delay settings inverted of what was intended. So if you have an anniversary autoresponder set to send “2 days before at 6pm”, it would actually send “2 days after at 6pm” (the reverse is also true - so “4 days after at 12pm” would be treated as “4 days before at 12pm”). This behavior has been fixed.
See GreenArrow Updates for information on updating existing autoresponders to maintain the old behavior.
-
Studio: Fixed an issue that could cause subscriber import deactivations to take an exceptionally long time.
-
Engine UI: Reword “SMTP Deferral Percentage” to be “SMTP Deferral+Failure Percentage”. The functionality has not changed - we’ve updated the label to better reflect the existing behavior.
-
Engine UI: Dynamic delivery charts date ranges should now be more accurate and reliable. Previously there was a mix of web browser and server time zones being used; now the charts use only the server time zone.
-
Engine/Studio: Fix a bug that caused the default HTTPS TLS certificate to take precedence over httpd.ssl.listen entries that did not specify a server name.
-
Upgrade TinyMCE to the current release (5.5.1).
GreenArrow 4.211.0
- Updated the Mailing List, Templates, and Campaigns tables so that each column can be used to sort the table.
GreenArrow 4.210.0
- Remove a limitation that prevents domain wildcard entries like
*.example.com
from being used when define_virtual_mtas_in_config_file is enabled.
GreenArrow 4.209.0
-
Update GreenArrow’s Docker container support to work with both CentOS 7 and Debian 10. Previously, only CentOS 7 was supported. See our drhinternet/greenarrow-docker Github repository for more information on how this beta feature works.
-
Updated the remote list retry schedule. Formerly, connections to remote list databases would get a total of 3 attempts in quick succession prior to marking the campaign as failed. The new retry schedule will make a total of 11 attempts with 30 seconds between each attempt.
-
Fix an issue that could cause Studio campaigns to fail with links longer than 2,712 bytes.
GreenArrow 4.208.0
- Added a new configuration option to the Event Processor that allows events to be delivered to HTTP endpoints as JSON, instead of form data. The option use_json_for_http_post can be set globally or on individual event destinations.
GreenArrow 4.207.0
- Add attachment support to the HTTP Submission API.
- Add support for CentOS 8 and Red Hat Enterprise Linux 8 Linux distributions.
GreenArrow 4.205.0
- New segmentation criteria - “Date Deactivated” - this allows you to find subscribers that were deactivated on a specific date (or date range). See the Segmentation Builder documentation for more information.
GreenArrow 4.204.1
-
Fix an issue introduced in GreenArrow 4.203.0. An interaction between throttle limits and connection reuse could cause some throttle groups to lock up, causing delivery attempts to that throttle group to stop.
-
Support for installing GreenArrow in Docker is now in beta. See our drhinternet/greenarrow-docker Github repository for more information on how this works.
GreenArrow 4.204.0
- You can now save custom rows for reuse in our responsive content editor. Custom rows are associated with a single mailing list, but can easily be used for campaigns on other lists. Read more in our content editor documentation.
- You must access Studio via HTTPS in order to use custom rows.
GreenArrow 4.203.0
-
The criteria for outgoing SMTP connection reuse has changed.
The previous behavior only reused connections when the domain of the recipient email address matched an available connection’s domain.
The new behavior reuses connections when all of the following are true:
- The recipient’s domain is part of the same throttle rule in GreenArrow as an available connection’s original recipient domain.
- The destination IP of the available connection matches at least one IP of the MX record returned by the recipient’s domain.
- The TLS status of the connection meets the requirement of the starttls_use and starttls_require directives.
This allows for more connection reuse.
GreenArrow 4.202.2
- When creating new IP addresses, if there is exactly one throttling template, it will be selected as the default when the form loads.
GreenArrow 4.202.1
- Fix a bug that could allow GreenArrow Engine web interface users with a -statsonly suffix to view non-stats pages in GreenArrow’s web interface.
GreenArrow 4.202.0
- Add support for triggering Studio Anniversary Autoresponders with global custom fields.
- Update GreenArrow’s packages to mark them as providing email related capabilities. This corrects a bug introduced in GreenArrow 4.200.0, where these markers were removed.
- For Red Hat-based Linux distributions, the markers restored are:
/usr/sbin/sendmail
,MTA
, andsmtpdaemon
- For Debian-based Linux distributions, the marker restored is:
mail-transport-agent
- For Red Hat-based Linux distributions, the markers restored are:
- Sending the alarm signal to the disk-queue (
svc -a /service/hvmail-disk-qmail-send
) now causes all queued messages in the disk-queue to be retried. This speeds up dumping messages from the disk-queue. - Dynamic Delivery charts will no longer show an error regarding falling behind on new installations of GreenArrow.
GreenArrow 4.201.0
-
Added an option
https_verify_peer
to the Event Processor configuration. This option allows you to disable HTTPS certificate verification during event delivery. -
Added an option
https_client_certificate
to the Event Processor configuration. This option allows you to set an HTTPS client certificate to be included event delivery to HTTPS destinations. This is useful if the destination server requires client certificate authorization. -
The list of trusted Certificate Authorities used by the Event Processor has been updated.
-
Added an option
commit_batch_size
to the Event Processor configuration. This option can provide increased event delivery performance. -
New configuration directive lets_encrypt_registration_server. This lets you override the Let’s Encrypt registration server, useful for testing without impacting your Let’s Encrypt Rate Limits.
-
Increased frequency of event delivery, leading to a significant increase in the Event Processor’s throughput.
-
A new value (mtaid_exists) is available to custom code that’s run during delivery attempts.
GreenArrow 4.200.1
-
Added documentation how to process clicks and opens behind a proxy server
-
In reaction to Google Chrome 84 blocking insecure downloads from secure (HTTPS) contexts, GreenArrow now uses HTTPS for communication when using the responsive content editor.
As such, we continue to recommend that you use GreenArrow’s Let’s Encrypt integration.
To avoid warnings or errors in the responsive content editor, ensure that you have a valid certificate for either the domain in
/var/hvmail/control/me
or use the new bee_images_domain configuration directive. -
Improved the appearance of very large message counts in Dynamic Delivery Statistics.
GreenArrow 4.200.0
- Unified GreenArrow Engine and GreenArrow Studio into a single “greenarrow” package
- Unified GreenArrow’s miscellaneous non-Engine and non-Studio packages into a single “greenarrow-support” package
- Reduced the disk space requirements of GreenArrow packages
Before GreenArrow version v4.200.0, Engine and Studio maintained separate changelogs. Refer to the Historic Engine Changelog or the Historic Studio Changelog for those versions