Ready-made solution for Email marketing.

Newsletter+ is a self hosted email newsletter application that lets you send trackable emails via Amazon Simple Email Service (SES), Mandrill Email Service from MailChimp, Sendgrid Email Service, MailGun Email API Service, UniOne from UniSender.

This makes it possible for you to send authenticated bulk emails at an insanely low price without sacrificing deliverability.

Just $55 for an unlimited time!



Send newsletters, 100x cheaper

via Amazon SES, Mandrill, Mailgun, Sendgrid or UniOne API-services.

Успей купить по ценам 2015 года

До 30 Декабря 2015

Stuck between a rock and a hard place

Your subscriber base is growing and so is the cost per campaign. Going for the monthly plan means wasting more money if you don't send newsletters regularly enough.

You're stuck. The bigger your subscriber base becomes, the more expensive it is to communicate with them. What if you can send without worrying about cost or deliverability?


Meet Newsletter+

Newsletter+ is a self hosted email newsletter application that lets you send trackable emails via Amazon Simple Email Service (SES), Mandrill Email Service from MailChimp, Sendgrid Email Service, MailGun Email API Service, UniOne API from UniSender.

This makes it possible for you to send authenticated bulk emails at an insanely low price without sacrificing deliverability.

How much can you save?

Heaps! How much do you usually send? Drag the slider below:



Email service

Cost per

Campaign Monitor $
MailChimp $
UniSender $
Sendgrid Pro $
Mailgun $
Mandrill $
UniOne $
Amazon SES $

A penny saved is a penny earned.

Features you'll get:

Delivery schedule

Ability to send emails punctually might need you in many situations. For example, you want to congratulate someone on the landmark date. Or work with colleagues who are in a different country and a different time zone, and you want to get your message they received it during working hours. You may want to send a reminder to do something at the right time.

Drag-and-drop or Wysiwig

Funky and fun? Elegant? Classy? Serious? Informative? Technical? With our intuitive Drag-and-Drop Newsletter Editor and absolutely zero HTML skills you’ll soon be emailing newsletters that look professional and breathtakingly beautiful. Easily adjust style of almost every design element on the email.

Want to edit your Email campaigns via old way? We left in a classic Newsletter+ Wysiwyg-editor. You can activate it if you want. Edit your own HTML, change the text, fonts, styles, insert personalization tags and more.

Autoresponders/Triggers

Triggers automate your mailing lists management adding subscribers to a different mailing list when they open a specific email or sending subscribers a certain newsletter when a particular link is clicked etc. Thus, when you set up triggers, you can configure certain things to happen automatically when certain other events occur.

Using autoresponders you can follow up with your subscribers automatically sending a series of personalized newsletters to new subscribers at intervals you define.

Text randomizer

Want to make your letters more unique? You can use the text randomizer in the subject, text and from name fields.

Subscribers/Lists

Create hundreds or even thousands of mailing lists and either import your existing subscribers or use our newsletter script to automatically create a subscription form for your web site.

Newsletter+ allows you to import from any CSV or XLS file. You can also manually add subscribers via a simple built-in tool. Need a subscriber database for another application? Newsletter+ also features a flexible export tool.

Subscription forms

Newsletter+ allows you to easily create subscription and unsubscription forms to be used on your site. All you will have to do is to put the html code of the form which will be generated by the newsletter script into your website page.

Reports/Statistics

Newsletter+ provides statistics on newsletters that you send informing on the number of clicks, opens, unsubscriptions etc. Having this valuable information will help you to determine your contacts interests, how your list is growing, and much more!

Email sending

Newsletter+ uses multi-threading to send emails via Amazon SES, Mandrill, Sendgrid, MailGun or UniOne. Free yourself from paying for expensive email campaigns and forget about email limits set by your host while at the same time enjoy high deliverability rate. Best bang for your buck.

Bounce & unsubscribe handling

Bounces, complaints and unsubscribes are automatically handled in real time once your newsletter is sent. There is no need for any manual post campaign cleanups.

Custom fields

With custom fields, you can store more than just names and emails. Use custom fields as personalization tags in newsletters to create a more personalized experience with your subscribers.

Multiple accounts

Managing multiple products or services? With Newsletter+, you can organize them into different accounts. Optionally give your client access to their own account and let them send newsletters on their own.

Monetization module *

The success of an online marketing site is also dependent on how well means of payment and paid services are thought out in a php newsletter software. We have thought through a wide range of payment gateways, payment types and services for administrator to monetize the site. * Note: Monetization module is additional paid module.

Banners module *

Administrator can create banner groups, set a fee for a group of pages and sell banner places as a paid service to users. Banners can be limited by number of views, clicks and date of expiration. The software supports image and HTML banner ads. * Note: Banners module is additional paid module. Paid services require an additional Monetization module.

News module *

You can create unlimited count of news and categories and enable news posting for users. You can restrict categories access for some languages or unregistered visitors. If you enable comments users will can post comments to news. * Note: News module is additional paid module. Paid services require an additional Monetization module.

SMS module *

SMS marketing module allows you create unlimited count of newsletters and send it to phones of your subscribers. Module can send SMS messages via SMS API services: SmsPilot, Clickatell or Nexmo. SMS alerts also available. * Note: SMS module is additional paid module. Paid services require an additional Monetization module.

Questions & Answers

Is this a hosted service?

No. Newsletter+ is a self hosted application that runs on your web server. Pay once and it's yours, there's no recurring fee.


What are the requirements?

You need an Apache server running a Unix like operating system (eg. Linux) with PHP, MySQL & mod_rewrite support. But hosting may impose restrictions, so we recommend to use a VPS server with RAM from 512 MB or higher.


Is Newsletter+ easy to setup?

Yes. Just follow our Get Started Guide to get up and running.


Will you update Newsletter+?

Yes of course! We're using Newsletter+ as well and will continually make it better and better. Updates are free within one year after purchase.


What's with Newsletter+ low pricing?

Some say the cheapest option isn't always the best value. What they may have failed to understand is that Newsletter+ is an app that you host yourself and that it uses Amazon's, Mandrill's, Mailgun's, Sendgrid's and UniOne's sophisticated email infrastructure built over the years to serve its own large-scale customer base.

Can I install Newsletter+ on multiple domains?

Newsletter+ has 3 types of licenses: Single site, Multiple sites and Multiple servers. Single site license can be installed on one domain per license. To install Newsletter+ on more domains, you need additional licenses or Multiple sites (servers) license. With Multiple sites license you can use any domains installed on the same server. If you have more than one server use Multiple server license. Newsletter+ licensed domain is just 'where you install Newsletter+ on'. You can send emails belonging to any domain you want.


Are Newsletter+ files obfuscated?

Newsletter+ has Encoded and Open source licenses. Encoded license has files are Encoded by IonCube Encoder and require IonCube Loader. Open source license has files are not obfuscated except for the installation and updates (one file). With Open source license you can edit the source code for your own personal use without needing these one file.


What's SES send rate and limit?

Once signed up for Amazon SES, submit the SES Sending Limits form to request for your desired daily sending limit. Eg. if you need to send 10k emails daily, request Amazon for a daily sending limit of 10k emails per day.

Get your copy of Newsletter+

Newsletter+ is yours to keep after a one time payment. You can then save a 100x for every campaign. But these savings are useless if your emails can't be delivered to the inbox. That is why Newsletter+ uses Amazon SES, Mandrill, Sendgrid, Mailgun or UniOne to send your emails (Do not use outdated methods or SMTP). If you encounter problems, we will help you. If it doesn't work out, we'll refund you: Moneyback is available within 30 days after purchase.






Single site license lets you have One site associated with one server only.


$55

One time fee

Multiple sites license lets you have an unlimited number of sites associated with one server only. License cost does not depend on the number of sites.


$90

One time fee

Premium license lets you have an unlimited installs. Too expensive? Unlimited number of installs! Publication (or transfer) of license key involves freezing the license.


$300

One time fee


Use add-ons to enhance the functionality of your website.






You will receive free updates only 12 month after purchase. But you can buy more years of updates.







Setting up Newsletter+

Installing Newsletter+ is a pretty simple process. Upload the files, set writable permissions, create a database, set a few settings and the rest are a matter of clicking around your Amazon Web Services, Mandrill, Mailgun, Sendgrid and UniOne consoles. The instructions are described in the following easy to follow steps.


If you require installation service, we do provide it for only $40. Simply reply the license email sent to you after purchase.


Download installer

  • Step 1 Check system requirements

    Note: We recommend install script on VPS server with 512 mb RAM or more.

    You are looking for VPS? Look at the offer from our partners REG.COM.

    Below is the list of system requirements your server should meet to get our script running smoothly.

    • - PHP 5.2 or newer (with MySQL extension)
    • - MySQL 5 or higher (with utf8_general_ci MySQL-encoding)
    • - Latest IonCube PHP Loader enabled on your server
    • - magic_quotes, safe_mode & open_basedir restriction switched Off
    • - allow_url_fopen switched On
    • - Cronjobs/scheduler support (better to configure them to run every minute)
    • - gd2, iconv, mbstring, imap, curl, sockets, tidy, mysql extensions for php
    • - mod_rewrite library and support of .htaccess files with RewriteRule attribute
    • - max_execution_time is 0 and max_input_time is -1 in the php.ini config file

    You can check requirements by file inf.php?action=requirements on your site.

    Site speed and work safety depend on hosting.

    Note: We recommend install script on VPS server with 512 mb RAM or more.

  • Step 2 Upload files

    1. Upload all files to your server.

    2. Make sure the .htaccess file (from the main directory), is uploaded to your server as well (may be hidden if you're using a Mac).

    Note: Use Binary transfer mode when uploading source codes. This is a strict requirement of IonCube encoded files. Open code version also has 1 encoded file.

  • Step 3 Set permissions of all folder and files

    Installation and updates requires the application, temp, system folder's permission to be set to 777 (and all of its subfolders and files).

    Image, attachment and CSV uploads requires the uploads folder's permission to be set to 777 (and all of its subfolders and files).

  • Step 4 Install Newsletter+

    1. Visit your Newsletter+ installation. If you uploaded Newsletter+ to http://yourdomain/newsletter, visit this link to install.

    2. Your License key is included in the email sent to you after you made your purchase.

    3. Fill in your FTP server access information (hostname, username and password) and press "Save data" to continue. You can skip this settings.

    4. Fill in your MySQL database access info (host, name, user, password) and save it.

    5. The system will download all modules before installation.

    6. The system will start installation.

    7. You'll be asked to specify your Email and Password. These will be your login credentials for Newsletter+.

  • Step 5 Configure Cron Jobs (Scheduled Tasks)

    Run this jobs every minute:

    * * * * * php /path_to_script/cron_index.php cron email_newsletters process >/dev/null 2>&1
    * * * * * php /path_to_script/cron_index.php cron email_newsletters bounces >/dev/null 2>&1
    * * * * * php /path_to_script/cron_index.php cron email_servers send >/dev/null 2>&1
    * * * * * php /path_to_script/cron_index.php cron email_notifications process >/dev/null 2>&1
    * * * * * php /path_to_script/cron_index.php cron subscribers import >/dev/null 2>&1
    * * * * * php /path_to_script/cron_index.php cron monetization time_limited >/dev/null 2>&1

    Run this job every day:

    0 0 * * * php /path_to_script/cron_index.php cron install check_license >/dev/null 2>&1

    This is examples of Cron Jobs. Don't use copy/paste. path_to_script need replace to full path from the root folder to folder with cron_index.php file.

    Cron jobs don't know site url. To fix it open file /application/config/config.php and enter website url to variable base_url, if the script did not do so during installation.

  • Step 6 Sign up for Amazon (AWS) & get your Access Credentials

    In order to use Amazon SES, you need to signup for an Amazon Web Services (AWS) account.

    1. Visit Amazon Web Services (AWS) and sign up for an AWS account.

    2. Once signed up, you need to retrieve your 'Access Credentials' from your AWS account. These are the set of "keys" to allow script to send emails via your Amazon SES account. Start by creating an IAM (Identity and Access Management) user in your IAM console.

    3. Click the Create New Users button:

    4. Type "nps" in the first field, then click the Create button.

    5. Copy your Access Key ID and Secret Access Key from the screen that follows and paste it in System -> SMTP & API systems -> API systems > Amazon SES API. Check API hosts (endpoints) here. Save your Settings then return to your IAM console to close the credentials window.

    6. IMPORTANT: Do not skip the remaining steps.

    7. You now need to "Attach Policy" to your Access Credentials to allow nps full SES access. In your IAM console, click on "nps".

    8. In the next page, click the Attach Policy button.

    9. Search for AmazonSESFullAccess, then click the checkbox next to the AmazonSESFullAccess item. Then click Attach Policy at the bottom of the screen.

  • Step 7 Setup Amazon Simple Email Service (SES)

    IMPORTANT: Before continuing, ensure that the drop down menu at the top right of your SES console displays the same region as what is set in your API host Settings.

    In order to start sending bulk emails, you need to verify your sending emails or domains and increase your SES Sending Limits.

    1. Verify your sending email address in your Amazon SES console > Verified Senders > Email Addresses. Say you're going to use yourname@domain.com to send newsletters, verify yourname@domain.com in your SES console. Click the Verify a New Email Address button and follow the instructions.

    Tip: If you want to send from any email address belonging to a particular domain without having to verify each email address, verify your sending domain instead (see #2 below).

    2. To verify your sending domain, go to your Amazon SES console > Verified Senders > Domains. Then click the Verify a New Domain button and follow the instructions. By verifying your sending domain, you can send from any email address belonging to this domain without verifying them in #1.

    Note: Do not verify your domain with 'www' prepended to your domain. Eg. if your domain is mydomain.com, verify mydomain.com and not www.mydomain.com unless your emails looks like this name@www.mydomain.com (which is rarely the case).

    3. Now, you'll need to request Amazon to increase your SES Sending Limits to be able to send to and from any email address as well as raise your daily sending limits from 200 per day to a number you need.

    Setup bounce handling

    Amazon SNS is required to track bounces & complaints. If an email bounced, the email address will be flagged in Newsletter+ so that future newsletters won't be sent to them again. To make this possible, here's what you need to do:

    1. Go to your SNS console, click Topics on the left sidebar, then click the Create new topic button.

    Name it bounces and leave the Display name blank, then click the Create topic button.

    2. After creating the topic bounces, click the 'bounces' checkbox then click the Actions button, then click Subscribe to topic.

    3. Now you need to populate the Endpoint field. Let's enter to Endpoint Email for Bounces noreply@site.com. In other words, you must create new Email address for Boucnes and Complaints. Don't forget add this address into verified email addresses.

    Click the Create subscription button.

    4. Go to your Amazon SES console > Verified Senders > Email Addresses and click on the email you attempted to verify. If you verified a domain, go to Amazon SES console > Verified Senders > Domains and click on the domain you attempted to verify.

    5. Under 'Notifications', click Edit Configuration.

    6. Under 'SNS Topic Configuration', click the Bounces drop down menu and select bounces (which is what you've created previously in your SNS console).

    7. Repeat #5 to #7 for every email and/or domain you've previously verified in your SES console.

    8. Done! All email bounces will now be tracked and handled when you send emails in Newsletter+.

    Setup complaints handling

    If a user marks your email as spam, they will be flagged in Newsletter+ so that future newsletters won't be sent to them again.
    The following steps to setup complaints handling are identical to bounce handling in the previous step:

    1. Click Create new topic in your SNS console.

    Name it complaints and leave the Display name blank, then click the Create topic button.

    2. After creating the topic complaints, click the 'complaints' checkbox then click the Actions button, then click Subscribe to topic.

    3. Now you need to populate the Endpoint field. Let's enter to Endpoint Email for Bounces noreply@site.com. In other words, you must create new Email address for Boucnes and Complaints. Don't forget add this address into verified email addresses.

    Click the Create subscription button.

    4. Go to your Amazon SES console > Verified Senders > Email Addresses and click on the email you attempted to verify. If you verified a domain, go to Amazon SES console > Verified Senders > Domains and click on the domain you attempted to verify.

    5. Under 'Notifications', click Edit Configuration.

    6. Under 'SNS Topic Configuration', click the Complaints drop down menu, scroll down and select complaints (which is what you've created previously in your SNS console).

    7. Repeat #5 to #7 for every email and/or domain you've previously verified in your SES console.

    8. By now, you should have setup bounces and complaints for every verified email and/or domain.

  • Step 8 Sign up for Mandrill & get your API key

    In order to use Mandrill, you need to signup for a Mandrill account.

    1. Visit Mandrill and sign up for an account.

    2. Once signed up, you need to retrieve your 'API key' from Mandrill account. Go to the Settings and click to Add API Key button.

    3. Increase your sending limits. Go to the Account and click to Upgrade account button.

    Setup Bounce Notifications

    1. Go to your Mandrill console, click Settings on the left sidebar, then click the Sending defaults tab.

    2. Find 'Forward Bounce Notifications To This Address' input and enter Email address for Bounces. Click to 'Save' button.

  • Step 9 Sign up for Sendrid Email Service

    In order to use Sendrid, you need to signup for a Sendrid account.

    1. Visit Sendrid and sign up for an account. You can choose Free plan.

    2. Once signed up, you can use your login and password in Newsletter+.

    3. Complete personal information. Your account will verified. You will not be able to send out any email before verification.

    Setup Bounce Notifications

    1. Go to your Sendgrid console, click Settings on the left sidebar, then click the Mail settings menu.

    2. Find 'Forward Bounce' and 'Forward Spam' settings and enter Email address for Bounces. Activate this settings.

  • Step 10 Sign up for Mailgun

    In order to use Mailgun, you need to signup for a Mailgun account.

    1. Visit Mailgun and sign up for an account.

    2. Once signed up, you can verify your Doman name. Click to Add Your Domain button.

    3. Mailgun will show DNS records which you must add. Once you make the above DNS changes it can take 24-48hrs for those changes to propagate. Mailgun will email you to let you know once your domain is verified.

  • Step 11 Sign up for UniOne

    In order to use UniOne, you need to signup for an UniOne account.

    1. Visit UniOne and sign up for an account.

    2. Once signed up, you can verify site ownership. Visit and follow the instructions.

    3. Before you start sending emails, you also need to confirm all sender Emails or domains. Visit and follow the instructions.

  • Step 12 Setup Bounces and Complaints handling

    Email Services are required to track bounces & complaints. If an email bounced, the email address will be flagged as Error in Newsletter+ so that future newsletters won't be sent to them again. To make this possible, here's what you need to do:

    1. Go to your site in the Admin mode, click System in the Left menu, then click the SMTP & API button.

    2. You will set sender's Email and name. This data will be used for Email alerts from your site.

    3. Below you can see Boucnes settings. You will enter IMAP access for mailbox where Newsletter+ will accept bounces and complaints. Script will add this Email to each letters into Return-Path and X-Complaints-To.

  • Step 13 Setup Email sending in the Newsletter+

    Email Services has API keys or credentials. You received this information in the steps 6-11. To add Email Services into Newsletter+, here's what you need to do:

    1. Go to your site in the Admin mode, click System in the Left menu, then click the SMTP & API button. Click the Email servers tab.

    Note: You must add Email servers for each Email service. One Email server is One sending thread. Newsletter+ uses Multi-Threading. If you want send faster then you can add many Email servers for Email Service, just use similar API keys or credentials.

    2. You will add Email server. Click to Add button.

    3. Select Email service in Mail solution like Amazon SES, Mandrill, Sendgrid, Mailgun or UniOne. Complete API keys or credentials.

    4. Fill all default fields. You can set Server's name like Amazon 1, Amazon 2, Madrill 10, etc. This is just for identify. You can set Charset, Quota limit. Enable server's usage for Email newsletters and/or Email alerts.

    Note: You must enable usage for Email newsletters and/or Email alerts. If you have disabled "usage for Email newsletters" it mean that server do not used for Email newsletters sending.

    Remember: If you want send faster then you can add many Email servers for Email Service, just use similar API keys or credentials.

  • Enjoy Newsletter+! What's next?

    Congratulations! You're all set up.

    Log in to your Newsletter+ installation and start adding your first User's account. Why user's account first? Let's just say you own this company called Widgets Inc. And, you have several products under it. These several "child" products are what we refer to as 'User's account'. With Users feature, you can also setup accounts for each of your clients. Optionally send them a password to login and send newsletters on their own at a price you set.

    For every new email you wish to use as your 'From email', don't forget to verify it (step 7 or step 11).

    If you've already verified the sending domain in your Amazon SES console and setup bounces & complaints for it, you don't have to do the same for each email you want to use as your 'From email'.

    Have fun!


Troubleshooting & Support

Please visit the troubleshooting page if you need any help.



Newsletter+ API

View Newsletter+ API documentation.



Translate Newsletter+

View our documentation on how to translate Newsletter+ into your own language.

Localization instructions

Newsletter+ codebase has been prepared for localization. Newsletter+ saves all phrases into database. But admin mode has tools for adding new languages.

Go to Admin mode - Content - Languages to translate Newsletter+ into your own language. Newsletter+ provides a user friendly interface for import/export .xml files (the file you need to edit to translate Newsletter+ into your own language).

The following instructions will get you started.


  • Step 1 Export English language from Database

    • 1. Go to Admin mode - Content - Languages and Export english language as english.xml file.
    • 2. You may want to save this language file in your local hard disk for ease of translation.
  • Step 2 Start translating

    • 1. Edit the english.xml file.
    • 2. Don't forget to save after you're done translating.
  • Step 3 Import your language file

    Go to Admin mode - Content - Languages and Import new language from .xml file.

  • Updating your language

    Congratulations. You've just translated Newsletter+ into your own language.

    Future versions of Newsletter+ will no doubt have new texts added to it which will require you to translate them. Here's how to update your language and translate new texts.

    • 1. Go to Admin mode - Content - Languages and export your language as language.xml file.
    • 2. Compare old file and new file for new lines and translate this lines.
    • 3. Import file with changes again.

Hit a snag?

Around 97% of Newsletter+ users runs Newsletter+ 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 Newsletter+.


Can't find your answer below? Try searching Newsletter+ support forum, post your question there or email contact@newsletterplus.net for support. Please note that support is only provided for the latest version of Newsletter+.



Setting up and installation

  • Getting 404 error

    Newsletter+ uses URLs without extensions, also known as 'Pretty URLs'. Instead of using URLs that ends like this /email_newsletters.php, it uses URLs that ends like this /email_newsletters. If you get a 404 error, check the following list:

    • 1. Did you upload Newsletter+ .htaccess file?
    • 2. Try this → /forum/forums/topic/404-error/
    • 3. If you setup your own server, ensure AllowOverride All is set in your Apache's httpd.conf instead of AllowOverride None so that Newsletter+ .htaccess file is not ignored by your server.
  • Page is blank

    • 1. Visit your compatibility checklist page via http://installation_url/inf.php?action=requirements (replace 'installation_url' with your Newsletter+ URL) and check that mysqli and IonCube Loader extensions are installed on your server. If otherwise, contact your hosting support to install mysqli and IonCube Loader extensions on your server.
    • 2. Check writable permissions for all files and folders. Newsletter+ uses Smarty templates. If server can't write temporary files then you can see White page.
    • Check that regular apostrophes are wrapping the credentials in all files into /application/config/. The text or code editor you used to edit files into /application/config/ may have converted the apostrophes to non-standard apostrophes causing this issue.
    • 4. 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 all files into /application/config/. This will cause a 'headers already sent' error that'll halt the script, preventing it from redirecting you to the installation page.
    • 5. Site mode is 'production' by default. Production mode not shows Errors and you can see White page. Edit /index.php and set mode to 'development'.

Using Newsletter+

  • Some records weren't imported from my CSV

    The reason why some emails aren't imported is because they are either malformed email addresses, duplicates within the list or CSV, previously marked as unsubscribed or spam in the list or marked as bounced globally (in any list or accounts).

  • I have trouble importing a huge CSV file

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

    • upload_max_filesize
    • post_max_size
    • memory_limit
    • 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.

  • 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. Try researching on this topic, eg. google for "spam filters", "how to get pass spam filters" etc.

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

  • Icons showing up as 'squares' in Newsletter+

    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

    Newsletter+ can only perform as well as the kind of your server you're using. Newsletter+ 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 Newsletter+ performs.

    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.

    Newsletter+ works well on a shared server, but if you have a very huge volume, consider running Newsletter+ 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 Newsletter+ is hosted. When you send a newsletter, Newsletter+ 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.


Newsletter+ Support

You can search for answers in Newsletter+ support forum, post your own question there, or send an email to contact@newsletterplus.net for support. Please note that support is only provided for the latest version of Newsletter+.

Demo version for Preview

Get instant access to Newsletter+ for 3 days!


View online demo of Newsletter+ for 3 days! Preview Only. Need more? Try on hosting (or VPS) for 14 days.

Create Demo

Request Trial version for Testing

You can try full-featured php Email marketing script on a server. Both user and admin panels are available for testing. Your settings are saved for the entire testing period.

Request Trial

Download installer

Install trial version for 14 days and win Basic license for Free!

Submissions will start on 15th of each month and will last 1 month. The drawing will take place on 16th of the next month. The winner will receive free Basic license.

Check for updates

Each license gets free updates within one year after purchase. For support, you must have a latest version of Newsletter+.


Release notes

Support & others

For support, visit the troubleshooting page. You can also email contact@newsletterplus.net with any questions.

Newsletter+ API

Newsletter+ API is based on simple HTTP GET/POST. Use the API to integrate Newsletter+ programmatically with your website or application. Some APIs may require the latest version of Newsletter+. We're working to include more APIs.


Subscribers

  • Create

    This method creates a new subscriber. You can't use this method to update an existing subscriber. On another note, you can also embed a subscribe form on your website using Newsletter+ subscribe form HTML code. Visit Forms, add new form, click 'HTML code' and place this code on your website.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    Note: Custom fields not available right now via API. Use forms for do it.

    • username account's login
    • password account's password
    • method subscribers.add
    • format format of responce: json, jsonp or xml by default
    • fname first name is optional
    • sname second name is optional
    • email subscriber's email
    • phone subscriber's phone
    • subscriber_language language for confirmation alert
    • lists the array of list ids you want to subscribe a user to. IDs are integer values and can be received via mailing_lists.get_list method
    • lists_statuses the array of subscription statuses for lists, 0 - not subscribed or not confirmed yet, 1 - subscribed. Keys of array must contain List IDs, values of array must contains statuses
    • check_email set this to "1" so that you'll check Email for existence. Not availabe if Admin disabled this feature, check settings before via subscribers.get_settings method
    • ignore_autoresponders set this to "1" so that you'll ignore Email autoresponders
    • ignore_triggers set this to "1" so that you'll ignore Email triggers
    • confirmation set this to "1" so that you'll send confirmation for Lists with 0 status. Not availabe if Admin disabled this feature, check settings before via subscribers.get_settings method

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data.subscriber_id: subscriber's ID

  • Update

    This method updates an existing subscriber. You can't use this method to create a new subscriber.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    Note: Custom fields not available right now via API. Use forms for do it.

    • username account's login
    • password account's password
    • method subscribers.update
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID
    • fname first name is optional
    • sname second name is optional
    • email subscriber's email
    • phone subscriber's phone
    • subscriber_language language for confirmation alert
    • lists the array of list ids you want to subscribe a user to. IDs are integer values and can be received via mailing_lists.get_list method. If size of array more than 0 then Subscriber will removed from other lists not included into this array
    • lists_statuses the array of subscription statuses for lists, 0 - not subscribed or not confirmed yet, 1 - subscribed. Keys of array must contain List IDs, values of array must contains statuses
    • check_email set this to "1" so that you'll check Email for existence. Not availabe if Admin disabled this feature, check settings before via subscribers.get_settings method
    • ignore_autoresponders set this to "1" so that you'll ignore Email autoresponders
    • ignore_triggers set this to "1" so that you'll ignore Email triggers
    • confirmation set this to "1" so that you'll send confirmation for Lists with 0 status. Not availabe if Admin disabled this feature, check settings before via subscribers.get_settings method

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Delete

    This method deletes an existing subscriber.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.delete
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Get by ID

    This method receives data for an existing subscriber by ID.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_by_id
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty or array, subscriber's data

  • Get by Email

    This method receives data for an existing subscriber by Email address.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_by_email
    • format format of responce: json, jsonp or xml by default
    • email subscriber's Email address

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty or array, subscriber's data

  • Get count

    This method receives count of an existing subscribers.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_count
    • format format of responce: json, jsonp or xml by default
    • mailing_list_id List ID uses for filtration, 0 - all subscribers

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data.count: count of an existing subscribers

  • Get list

    This method receives list of an existing subscribers.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_list
    • format format of responce: json, jsonp or xml by default
    • mailing_list_id List ID uses for filtration, 0 - all subscribers
    • page page's number, uses for pagination
    • count items per page, uses for pagination
    • order sorting by subscriber's data: email, phone, fname, sname, date_created by default, etc.
    • order_type sorting direction: asc or desc by default

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: array, list of an existing subscribers

  • Get subscriptions

    This method receives list of subscriptions for existing subscriber.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_subscriptions
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: array, Keys as List ID's and Values as statuses (0 - not subscribed or not confirmed yet, 1 - subscribed)

  • Subscribe

    This method adds an existing subscriber to the list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.subscribe
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID
    • list_id list's ID
    • status 0 - not subscribed or not confirmed yet, 1 - subscribed
    • ignore_autoresponders set this to "1" so that you'll ignore Email autoresponders
    • ignore_triggers set this to "1" so that you'll ignore Email triggers
    • confirmation set this to "1" so that you'll send confirmation for Lists with 0 status. Not availabe if Admin disabled this feature, check settings before via subscribers.get_settings method

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Unsubscribe

    This method removes an existing subscriber from the list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.unsubscribe
    • format format of responce: json, jsonp or xml by default
    • id subscriber's ID
    • list_id list's ID
    • ignore_autoresponders set this to "1" so that you'll ignore Email autoresponders
    • ignore_triggers set this to "1" so that you'll ignore Email triggers

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Settings

    This method receives settings for subscribers.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method subscribers.get_settings
    • format format of responce: json, jsonp or xml by default

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data.confirmation: 0 - Feature disabled, 1 - user can use this feature or not, 2 - always sends confirmation without user

    data.check_email: 0 - Feature disabled, 1 - user can use this feature or not, 2 - always checks email existence


Lists

  • Create

    This method creates a new list. You can't use this method to update an existing list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    Note: Custom fields not available right now via API. Use forms for do it.

    • username account's login
    • password account's password
    • method mailing_lists.add
    • format format of responce: json, jsonp or xml by default
    • name name is optional

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data.list_id: list's ID

  • Update

    This method updates an existing list. You can't use this method to create a new list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    Note: Custom fields not available right now via API. Use forms for do it.

    • username account's login
    • password account's password
    • method mailing_lists.update
    • format format of responce: json, jsonp or xml by default
    • id list's ID
    • name name is optional

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Delete

    This method deletes an existing list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    Note: Custom fields not available right now via API. Use forms for do it.

    • username account's login
    • password account's password
    • method mailing_lists.update
    • format format of responce: json, jsonp or xml by default
    • name name is optional

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Get by ID

    This method receives data for an existing list by ID.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method mailing_lists.get_by_id
    • format format of responce: json, jsonp or xml by default
    • id list's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty or array, list's data

  • Get count

    This method receives count of an existing lists.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method mailing_lists.get_count
    • format format of responce: json, jsonp or xml by default

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data.count: count of an existing lists

  • Get lists list

    This method receives array of an existing lists.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method mailing_lists.get_list
    • format format of responce: json, jsonp or xml by default
    • page page's number, uses for pagination
    • count items per page, uses for pagination
    • order sorting by subscriber's data: name, date_created by default, etc.
    • order_type sorting direction: asc or desc by default

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: array of an existing lists

  • Delete subscribers

    This method deletes all subscribers in the list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method mailing_lists.delete_subscribers
    • format format of responce: json, jsonp or xml by default
    • id list's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses

  • Clear subscriptions

    This method unsubscribes all from the list.

    URL
    http://your_newsletter_installation/api/


    PARAMETERS (GET/POST)

    • username account's login
    • password account's password
    • method mailing_lists.delete_subscriptions
    • format format of responce: json, jsonp or xml by default
    • id list's ID

    RESPONSE (array)

    msg.err_code: Error ID, see below, 0 - success

    data: empty, not uses


Error codes

1: Authorization error

2: Error when adding to the database

3: No address database with the specified id

4: No Subscriber with the specified id

5: Subscriber already been removed from the address base

6: Incorrect Email

7: Email not exists

8: Subscriber already exists

9: Reached the maximum number of address bases (go to paid mailing lists for expand)

10: Reached the maximum number of address bases (go to paid packages for expand)

11: Reached the maximum number of subscribers (go to paid subscribers for expand)

12: Reached the maximum number of subscribers (go to paid packages for expand)

13: Subscriber already been added to the address base

14: User already exists

15: Registration is disabled

16: Email already is use

17: Password is incorrect

999: Unknown Error



Newsletter+ API Examples

Below are some example scripts you can download to get an idea about how Newsletter+ API can be used. On another note, Newsletter+ also provides you with a subscribe form HTML code for every list which you can readily use. Just visit 'Forms', create new form, click to 'HTML code' and place this code on your website.


Newsletter+ Wordpress plugin →

This Wordpress plugin provides an easy, lightweight way to let your users subscribe to a list in Newsletter+. You can use it to sign up users for several different lists by placing the widget in the sidebar. Email will be validated on form submission.


Newsletter+ PHP Library →

A PHP class built to interface with Newsletter+ API.






Newsletter+ Software can send Email campaigns via

Amazon SES UniOne Mandrill Mailgun Sendgrid


Additional SMS module can send SMS messages via

Clickatell Nexmo SmsPilot







Too busy right now?

Remind yourself to come back later in via email.



Or join our newsletter



Subscribe