Sendy

Troubleshooting & Support


Hit a snag?

Around 97% of Sendy users runs Sendy without a problem. If you do hit a snag, it may be one of the common ones compiled below.

But first, always ensure you are up to date with the latest version of Sendy.

Can't find your answer below? Try searching Sendy's support forum, post your question there or email for support. Please note that support is only provided for the latest version of Sendy.




Setting up and installation

Getting 'Invalid license or domain' or 'Outgoing connections blocked' error

  1. Check that you are installing Sendy on the domain you purchased Sendy for. You can install Sendy on any folders or sub domains as long as the 'main domain' is a Sendy licensed domain.
  2. If you are sure you're installing Sendy on the domain you purchased Sendy for, your server may have a firewall blocking outgoing connections. Check with your host if your server has a firewall blocking outgoing connections. If so, request your host to whitelist '162.243.225.110' and 'amazonaws.com'.
  3. If you setup your own server, please install all the latest updates to the server and reboot Apache. Or contact your hosting support to do so.
  4. Also check your compatibility checklist via http://your_sendy_installation_url/_compatibility.php?i=1 and make sure curl and curl_exec is enabled. If either module is not enabled, please contact your hosting support to install them on your server.
  5. If you're attempting to login to Sendy and frequently get an 'Outgoing connections blocked' error, your php.ini's session.save_path is probably set to the /tmp directory. This directory is emptied by the server daily so when you attempt to login, the cookies that was previously saved in your browser won't match the session data because the /tmp directory is emptied. If you delete cookies in your browser and try logging into Sendy again, you'll realise it will work.

    But to prevent having to do this over and over again, change the session.save_path to another permanent directory instead of /tmp. Don't forget to give the new session directory 'write' permissions. Contact your hosting provider if you're unsure how to do this.

Getting redirected to http://your_sendy_installation_url/_install.php

'http://your_sendy_installation_url' is a dummy placeholder URL for APP_PATH in /includes/config.php.

You need to set the APP_PATH in /includes/config.php to your Sendy installation URL.

Eg. if your domain is http://mydomain.com and you uploaded Sendy to /sendy/ folder, your APP_PATH is 'http://mydomain.com/sendy'.

Getting 404 error at login page after installation

Sendy uses URLs without extensions, also known as 'Pretty URLs'. Instead of using URLs that ends like this /login.php, it uses URLs that ends like this /login. If you get a 404 error at the login page after installation, check the following list:

  1. Did you upload Sendy's .htaccess file?
  2. Try this → https://sendy.co/forum/discussion/5/404-error-after-install/p1
  3. If you setup your own server, ensure AllowOverride All is set in your Apache's httpd.conf instead of AllowOverride None so that Sendy's .htaccess file is not ignored by your server. Remember to reboot Apache after making changes to httpd.conf.

Getting 500 internal server error when visiting my Sendy installation URL

Try removing Options +FollowSymLinks from Sendy’s .htaccess file and try again.

If it does not work, try removing Options -Multiviews as well.

Page is blank when visiting my Sendy installation URL

  1. Visit your compatibility checklist page via http://your_sendy_installation_url/_compatibility.php?i=1 (replace 'your_sendy_installation_url' with your Sendy URL) and check that mysqli extension is installed on your server. If otherwise, contact your hosting support to install mysqli extension on your server.
  2. Check that regular apostrophes are wrapping the database credentials in /includes/config.php. The text or code editor you used to edit the /includes/config.php file may have converted the apostrophes to non-standard apostrophes causing this issue.
  3. Make you did not unintentionally add empty spaces or lines before the start of the first line or after the last line of code in /includes/config.php. This will cause a 'headers already sent' error that'll halt the script, preventing it from redirecting you to the installation page.

Getting 'Can't connect to database' error

There's really no other reason why you're getting this error other than the following.

  1. Check that your database credentials are correct.
  2. Check that you've attached the database user to the database and granted it full privileges.
    Check with your hosting provider or refer to your server documentation on how to do that if you're unsure.
  3. Check that regular apostrophes are wrapping the database credentials in /includes/config.php. The text or code editor you used to edit the /includes/config.php file may have converted the apostrophes to non-standard apostrophes causing this issue.
  4. Lastly, make sure you've pasted your database credentials within the apostrophes and not anywhere else
    (see correct example below):

Login page just reloads without an error message even when my login credentials are correct

  • Your login email and password is case sensitive. For example, if your login email was saved as Name@Domain.com in Sendy, attempting to login with name@domain.com will fail. Log in with your credentials using the correct case.
  • Your domain may have a "www" redirect. If so, try setting the APP_PATH in /includes/config.php to the "www" version of your Sendy URL. For example, try 'http://www.mydomain.com/sendy' instead of 'http://mydomain.com/sendy'.
  • Your server can't save session variables because of a misconfiguration. You may need your hosting support's help with this. Contact your host to check if your server's session.save_path is set correctly in php.ini as session variables can't be saved resulting in you not being able to log in.
  • Under some rare circumstances your hosting server may be "over quota". Please check that this isn't so.


Using Sendy

Sendy says 'bounces' and 'complaints' handling wasn't set up when I send a campaign

First of all, confirm that you have followed closely Step 7 & 8 of the Get Started Guide.

If you have already done so, check the following:

  1. Did you set the Notifications for ALL verified emails and domains in your Amazon SES console? Watch this short 15 secs video (taken from steps 7.5 to 7.7 for bounces and steps 8.5 to 8.7 & 8.9 for complaints in the Get Started Guide).
  2. Is your 'bounces' & 'complaints' SNS subscriptions in 'PendingConfirmation' mode? They shouldn't be. If they are, see the next troubleshooting tip.

If all is setup properly, try sending the campaign again. The warning message should not appear again. If after two or three tries and the warning message still appear, make doubly sure of #1 and #2 above again.

SNS subscriptions showing 'PendingConfirmation' in my Amazon SNS console

Please check with your host if your server has a firewall blocking incoming connections. If so, request your host to whitelist 'amazonaws.com' in their firewall. If your host needs the IP address to whitelist, here's Amazon's documentation on getting the IP range. The reason why it's showing 'PendingConfirmation' is because Amazon can't execute the bounces.php and complaints.php scripts as a result of your server's firewall blocking incoming connections.

I've verified my 'From email' but Sendy says it's not verified

Check that you've followed the important note right at the beginning of Step 6 of the Get Started Guide. Or see https://sendy.co/forum/discussion/2449/unverified-from-email

If you've ensured the above, check that your Amazon SES quotas aren't showing all 0s in the left sidebar when you login to Sendy. If your Amazon SES quotas are showing all 0s in the left sidebar, please follow the instructions on the red error message right below it. Once this is resolved, Sendy will then be able to successfully check the verification status of your 'From email'.

Lastly, please make sure the 'From email' you used in Sendy is exactly the same case as what's verified in your Amazon SES console. For example, if you verified myname@domain.com in your Amazon SES console and used MyName@Domain.com in Sendy, it will not work. Both emails must be using the same case.

Some records weren't imported from my CSV

The reason why some emails weren't imported into your list is because:

  • There are malformed email addresses in your CSV
  • Some emails in your CSV already exists in the list you're importing into
  • Some emails in your CSV are marked as 'Unsubscribed' or 'Marked as spam' in one or more lists in the same brand
  • Some emails in your CSV are marked as 'Bounced' in one or more lists in any brand

I have trouble importing a huge CSV file

Try increasing the following values in your server's php.ini. Contact your hosting support if you're unsure how to do this.

  • upload_max_filesize
  • post_max_size
  • memory_limit
  • max_input_time
  • max_execution_time (set to 0 so that execution won’t time out indefinitely)

Alternatively, try splitting your huge CSV file into several smaller sized CSV files and import them one after another.

How to stop a CSV import that's currently importing

If the list you're currently importing a CSV file into has zero subscribers, you can just delete the list, then re-create the list.

Otherwise, if your list has existing subscribers, do the following to stop a CSV import that's currently importing:

  1. Login to your server via FTP and delete the CSV in /uploads/csvs/ folder
  2. Login to your MySQL via phpmyadmin, go to lists table and change the value of prev_count, currently_processing and total_records to 0

The CSV import will stop.

CSV import stuck at 0%

If your CSV import is stuck at 0%, the cron job that you previously setup for import-csv.php is not working, hence it's not executing the import-csv.php script that in turn starts the CSV import.

You'd need to check that your cron job is setup correctly. To see the cron job setup instructions again for import-csv.php:

  1. Visit http://your_sendy_installation_url/reset-cron.php to reset cron job statues in your database
  2. When you're at the 'Add subscribers' page in any list, you'll see the cron job setup instructions in a blue box, follow the cron job setup instructions to setup your cron job
  3. If you're unsure whether your cron job is setup properly, check with your hosting support to see if there're any issues with the cron job you setup

Alternatively, you don't have to setup a cron job for CSV import. Perform only Step 1 above, then import your CSV.

403 Forbidden error when clicking 'Save & next'

You may be getting a '403 Forbidden Error' or 404 error due to one of the follow reasons:

mod_security

Your server has mod_security turned on and it's falsely triggered. Please contact your hosting support to turn off mod_security (entirely or just for your Sendy directory) to resolve this issue.

This article explains how to turn off mod_security for a single directory.

Browser extension inserting code into editor

One of your browser extension may be inserting code into the editor when you were composing your email.

  1. Disable all extensions in your browser as one of your browser extension is inserting redundant code into the WYSIWYG editor when you’re creating or editing a campaign
  2. Or use a browser that have no extensions installed
  3. Then create and save your campaign again

If the error message does not appear anymore, then you’d need to track down this browser extension that inserts code into the WYSIWYG editor when you were creating/editing your campaign and disable it.

Wordfence plugin for Wordpress

If you're running Wordpress with 'Wordfence plugin' installed and enabled, disable the 'Wordfence' plugin and try again.

Slashes appear in my subject line when I save a campaign

That’s because magic_quotes_gpc is turned on. Please contact your hosting support to turn it off.

By the way, magic_quotes_gpc has been deprecated in PHP 5.3 and up.

Campaigns says 'Preparing' and refuses to send

If your campaign has been in 'Preparing' status for more than 5 minutes, this means that the cron job you've setup previously aren't executing the 'scheduled.php' script to start sending.

Check that your cron job is setup correctly to execute the 'scheduled.php' script every 5 minutes. Contact your hosting support to confirm that your cron job is setup correctly to execute the 'scheduled.php' script every 5 minutes if you're unsure.

Here's what you should do if your campaign is currently stuck in 'Preparing' status:

  1. Duplicate the the campaign currently stuck in 'Preparing' status to get a new 'Draft' of that campaign
  2. Delete the campaign that's stuck in 'Preparing' status
  3. Go to http://your_sendy_installation_url/reset-cron.php to reset cron job statuses (this removes the false positive that a cron job has been setup).
  4. Click the 'Draft' campaign you duplicated from the stuck campaign from step 1, you'll then see the blue cron job setup instructions again at the bottom of the next page.
  5. Setup your cron job again, following the instructions carefully this time. If your cron job is setup correctly, the blue cron job setup instruction box will disappear when you visit the page in around 5 minutes. If it doesn't, your cron job is not working. Please contact your hosting support to confirm that your cron job is setup correctly to execute the 'scheduled.php' script every 5 minutes.

Campaign says 'Sending' but refuses to send

  • If you're on Sendy version 2.1.0 and above, send a test email to yourself using the Test send this campaign function in the 'Define recipients' page to see if you get any error message from Amazon.

  • If you're on Sendy version 2.0.9 and below, send a test email from your Amazon SES console and see if you get any error message from Amazon.

Sending stopped in the middle of sending

Your server timed out while sending due to CPU or memory exhaustion.

If you had previously setup a cron job for sending, Sendy will automatically resume sending between 5 to 10 minutes time so you don't need to monitor the sending of your campaign by clicking the 'Resume' button manually when sending times out.

To setup a cron job for sending & scheduling of email campaigns, follow the cron job setup instructions note shown in a blue box at the bottom of the 'Define recipients' page:

Once the cron job has been setup, the cron job will automatically resume sending when your server times out while sending. If sending did not automatically resume, your cron job is not setup correctly. Check with your host that your cron job is setup correctly and it's executing the scheduled.php script every 5 minutes.

Not setting up a cron job is also an option. You'd just need to manually click 'Resume' (located on the campaign item) to resume sending whenever your server times out while sending.

Note that the better the spec of your server, the better Sendy performs which means lesser timeouts while sending. Sendy is a self hosted software, how well it performs depends on the kind of server you're running Sendy on.

Email wasn't opened in USA but shows up as USA in the report

You're opening emails from Gmail. If you are opening emails from Gmail, the country will be registered as USA no matter which country you open the email from. This is because Gmail now caches and serves ALL images (including the tracking image) from their US server as a result of a recent change.

The tracking image that tracks all email activities is opened from Gmail's US server when the email is opened in Gmail, hence the location is registered as USA.

This is the same for all email marketing platforms in the world right now and there aren't any workarounds at the moment.

My emails are going to the spam folder

The reason why your email goes to spam depends on a multitude of factors.

Emails are sent through Amazon SES. Amazon works day in and out maintaining good relationships with ISPs and constantly weeding out spammers so that deliverability rate is kept at its highest for all users using the service.

If your emails end up in the spam folder, it is likely due to your sender reputation. If the emails you sent has been consistently marked as spam by your recipients, the likelihood of your emails going to the spam folder will be high. If you are sending emails to 'purchased lists' or emails harvested from questionable sources, that explains it.

Spam filters on the receiving end are also very strict in what kind of emails they will put in the inbox. Also note that different ISPs or email service providers have varying levels of spam filtering. Spam filter algorithms varies from providers to providers. Try researching on this topic, eg. google for "spam filters", "how to get pass spam filters" etc.

Lastly, authenticate your sending domain so that the receiving end knows that the email you sent is really from you and not spoofed:

My campaign is sent to "0" recipients

You have ONLY_FULL_GROUP_BY enabled in MySQL. You need to disable it. See this thread for more information.

'Forgot password' function not sending me password reset email

Make sure your main account login's email address is verified at your Amazon SES console otherwise the 'forgot password' email will fail to send. If you've already done that and the email is still not in your inbox, check your spam folder.

Alternatively, reset your password in your database directly via phpmyadmin by following these steps → https://sendy.co/forum/discussion/2277/how-can-i-manually-reset-a-password-in-the-database-using-phpmyadmin/p1

Icons showing up as 'squares' or not showing up at all in Sendy

This is due to a webkit issue, only happens in Chrome and Safari.

  • On a Mac, press 'Shift' and click the refresh button at the same time to force the font icons to load.
  • On Windows, press 'Ctrl + F5' to force the font icons to load.

Sending speed

Your server and its physical location determines what kind of sending speed you'll be experiencing.

Server

Sendy can only perform as well as the kind of your server you're using. Sendy is a 'bulk email application', almost everything is performed in bulk, from importing CSVs to sending of emails. The larger your volume, the more server resources it uses.

The better the spec of your server, the faster Sendy will perform and the lesser timeouts will occur.

If you can, increase your server's memory_limit to a number close to what your server physically supports by editing your server's php.ini.

Sendy works well on a shared server, but if you have a very huge volume, consider running Sendy on a VPS.

Server location

Also, you are able to choose which Amazon SES region (US East, US West and EU) to send emails from. Always choose the region closest to the physical location of your hosting server where Sendy is hosted. When you send a newsletter, Sendy transfers emails to Amazon SES. Amazon SES in turn sends out your emails. The closer the physical location of your server versus Amazon SES's servers, the lesser the latency and the faster the sending speed.

Sending rate

As Sendy transfers your email in bulk to Amazon SES for sending according to your SES send rate, depending on the capability of your server, your server may have trouble processing huge bulks of emails efficiently if your SES send rate is very high. Lowering your send rate may yield better sending speed and stability. You can lower your sending rate in Sendy's main settings.

Lastly, having your 'Sending rate' in settings unintentionally set as '1 email per second' would cause your emails to send very slowly. Do check your 'Sending rate' in settings to make sure it's set at the speed you want.

[Users on Ubuntu] Sendy's interface not changed to the language I selected

Sendy uses gettext extension for PHP for translation. On Ubuntu, you need to add proper locales to your system first.

Please see this post or this post for more details.

[Users on Ubuntu] Opens, clicks and email previews not working

First of all, make sure Sendy's .htaccess file was uploaded to Sendy's directory.

Then make sure AllowOverride None is changed to AllowOverride All in Ubuntu so that Sendy's .htaccess file is not ignored by Ubuntu. Follow the instructions on this post http://www.joeldare.com/wiki/linux:using_.htaccess_on_ubuntu.

[Users on Ubuntu and PHP 7] Campaign sent to '0 recipients' and/or Autoresponders not sending

The solution is to remove ONLY_FULL_GROUP_BY from 'sql_mode' in MySQL. Please see instructions by 'Zack' on this thread on removing ONLY_FULL_GROUP_BY from 'sql_mode' in MySQL.

Where can I find the subscribe form HTML code to embed on my website?

Sendy provides you with a subscribe form HTML code you can embed anywhere on your website.

  1. Go to 'View all lists' on the left sidebar
  2. Select your desired list
  3. Click 'Subscribe form' at the top right to get the HTML code

You can also subscribe users programmatically via Sendy's 'Subscribe' API.

Where do I setup an Autoresponder?

  1. Go to 'View all lists' on the left sidebar
  2. Select your desired list
  3. Click 'Autoresponders' at the top right of the screen


Sendy Support

You can search for answers in Sendy's support forum, post your own question there, or send an email to for support. Please note that support is only provided for the latest version of Sendy.

Join our newsletter