Scheduled campaigns now displays their scheduled dates in the 'Sent' column of the campaign item in 'All campaigns'. If you have a bunch of campaigns scheduled for sending later, you can see all scheduled dates at a glance without having to mouse over each campaign's title.
The unsubscribe link in the ‘List-unsubscribe’ header will bypass double opt-out even if it is set in the list settings. This is to comply with RFC 8058. Unsubscribe links in the email body will still respect double opt-out if it is set as such. (Thanks James Cridland for the tip)
Signing up to a list via the API will no longer update segments to prevent overwhelming the server for users with a large volume of subscribers. Segments should be updated exclusively using a cron job or manually at the segments section.
If an email address ‘Bounced’, their subscription status will display as 'Bounced' in the ‘Search all lists’ page regardless of whether they confirmed their subscription previously. This follows the same display behaviour as the subscriber list page.
Fixed deprecation warning in the header.php script
Fixed fatal error for uncaught type error for some users in tracking script. (Hat tip Mathieu Landry)
Fixed deprecation errors in PHP 8.1+ for AbstractModel.php and AbstractRecord.php
When using the [Name] or [Name,fallback=] tag, Sendy now capitalizes the first character of the subscriber’s name if the name is in all lowercase.
When updating a subscriber's email in the 'Subscriber info' modal, any previous bounce, marked as spam, or unsubscribe status will reset as the subscriber becomes new.
When hitting ‘Enter’ to change a subscriber’s email address in the ‘Subscriber info’ modal, the ‘Email already exist in this list’ JS alert will no longer show up
Support ‘eventType’ in addition to ‘notificationType’ when handling JSON payload from SNS notifications. This is to ensure bounces and complaints are handled when using configuration sets to send emails in Amazon SES. (Thanks Chris Denning for the heads up)
Google no longer supports QR code generation, this causes QR code images to be broken when enabling 2 Factor Authentication. This update fixes that.
Fixed broken link for attachments when editing Autoresponder emails
Resolved an issue where attachments were not included in the autoresponder email when sending a 'test' autoresponder email.
Added ‘Precedence: Bulk’ header to outgoing campaigns to inform ISPs that your email campaign is sent in bulk, preventing them from sending out-of-office replies to you and reducing the chances of your bulk emails from being sent to the spam folder.
The ‘Search all lists’ function now includes ‘lists’ in the search results page (in addition to ‘subscribers’). If you have numerous lists and want to avoid paging through the 'View all lists' page to locate a specific one, you can now conveniently use the 'Search all lists' feature located at the top right of the page to search for lists.
The results page for 'Search all lists' and 'Search campaigns' now includes the search field that is in focus when the page load. This allows you to continue searching without the need to go back to the previous page.
A paper clip icon now appears alongside the campaign or autoresponder email title if an attachment is present
If a campaign includes an attachment, it will now be visible in the campaign report. You can view, download, or delete it.
Fixed alignment issues in the sub-menu header of the subscribers page in Safari (Thanks Anthony Chan for the heads up)
Apply the same sorting preference for segments as for lists in the 'Define recipients' page (the page where you select lists to send your campaigns to) (Thanks Francisco Vásquez Neira)
Some fixes to eliminate PHP notices (Thanks James Cridland)
[PHP 8.2.7+] Trim and type cast ‘total_recipients’ with ‘int’ when sending campaigns without a cron job setup (thanks Gary Cornelisse)
Added a 5 second timeout to curl calls for click tracking to prevent server time outs or crashes when large number of clicks are being recorded (Thanks James Cridland & DJ Ramones)
Fixed ‘Get lists’ API returning hidden lists by default or if ‘include_hidden’ is set to ‘no’ (Thanks Heiner Gassen)
Fixed date based custom field setting the value to “Jan 01, 1970” instead of “not set” when emptying it. (Thanks Sander Devrieze)
Fixed accented characters not showing up correctly when importing a CSV
Get host of Sendy install using explode function if parse_url doesn’t return ‘host’ data when creating or editing a brand
New 'unsubscribe tag' detection
Sendy now checks for missing unsubscribe tags in your email before sending out your campaign. A message will appear reminding you (or your clients) that an unsubscribe tag is missing in your email and it is recommended to add one to minimise complaint rates.
Automatically fix incorrect usage of unsubscribe tag
Sendy now checks if you accidentally used a 'dummy placeholder unsubscribe link' in your email instead of a proper unsubscribe tag. If the latter is used, Sendy will automatically replace it with the correct [unsubscribe] tag.
Broken links detection
Sendy now checks all links in your email for broken links before you send out your campaign. If there are broken links in your email, Sendy will inform you with the list of broken links so that you can fix them before sending out your email.
The 1 x 1 pixel tracking image has been substituted with a base64 version of the image to reduce the file size and eliminate one HTTP redirect. Although this may appear insignificant for a single open, it can result in thousands of HTTP redirects being saved for numerous opens. ~ Thanks James Cridland for the suggestion
Adjusted CSS for mobile view
Fixed ‘Uncaught DivisionByZeroError’ in Autoresponders emails page
You can now enable or disable individual rules easily with Yes or No toggle buttons. This way, you don’t need to delete a rule in order to disable a rule.
You can now pass variables into your custom ‘Already subscribed’ URL in the list settings. Supported variables are %n for name, %e for email and %l for list ID.
[PHP 8.1] Some PHP 8.1 fixes
[PHP 8.2] Fix for CSV import may get stuck at a certain percentage when importing CSVs with custom fields
[PHP 8.2] Fix for PHP 8.2 error - ‘Using ${var} in strings is deprecated’
[PHP 8.2] Fixed ‘PHP Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /includes/helpers/class.amazonses.php
Changed Ukrainian capital city from ‘Kiev’ to ‘Kyiv’ in timezone selection. (hat tip: Tamara Zakharova)
Updated link and copy of on-screen instructions for Amazon SES sandbox mode in the 'Define recipients' page (the page where you select lists to send your campaign to)
[PHP 8.1] Fixed ‘Uncaught TypeError: mysqli_num_rows(): Argument #1 ($result) must be of type mysqli_result, bool given’ for CSV import
Fixed subscribe API returning ‘Invalid API key’ when list ID is incorrect. Error message now returns ‘Invalid list ID.’.
Fixed issue with pagination in subscribers view where some subscribers may not appear in the list view (although they do exist in the database)
Updated copy for cron job setup instructions at the 'Define recipients' page (the page where you select lists to send your campaign to)
Added support for the new ‘Jakarta’ Amazon SES region.
Sendy supports Amazon SES in all available regions - N. Virginia, Ohio, Oregon, N. California, Osaka, Mumbai, Sydney, Singapore, Seoul, Tokyo, Jakarta, Canada, Ireland, Frankfurt, London, Paris, Stockholm, Milano, Bahrain, São Paulo and Cape Town.
Please note that you don't need to be located physically in any of the above regions to use Amazon SES. You can use Amazon SES no matter where you are.
Updated ‘Stop’ button design for CSV import to match the ‘Stop campaign’ button for consistency
Added a confirmation prompt when user clicks the ‘Stop’ button for CSV imports
Updated copy for ‘skipped emails CSV’ to inform users that the existing subscriber’s data has been updated even though it was skipped from the last import
[PHP 8.1+] Fixed DivisionByZeroError in the campaigns and report page for certain scenarios
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.