Change Log
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