Unlike most email software and hosted email applications with one or a couple of sending options, Ninja EMS offers a sending server function with multiple options to configure the system. The scope of the sending server function is broad where you’ll have the ability to add sending servers belonging to different providers like Mailgun, SendGrid, Amazon, and others. In this article, however, we’ll discuss the overall functioning of the sending server module, while each integration may become a topic of separate articles.

In this Article

  • How can I configure a sending server in Ninja EMS?
  • How can I send emails from Amazon SES?
  • How can use Mailgun, SendGrid, and other mail services?
  • How can I use the default PHP mail function for sending?
  • How can I configure SMTP in Ninja EMS?

The “Sending Server” function is placed under the “Setup” on the main navigation. The main page of the sending server would show existing sending servers if you already have them in your system. “Add Sending Server” is the button that you’ll need to click from the left side corner of the page to start configuring/adding a new server for your outgoing emails.


There is a toggle option to mark the status of the sending server as “Active” or “Inactive”, which is set as active by default.


Since there are different types of mail servers you can integrate the Ninja EMS system with, it is always better to manage each type separately. Groups will help you categorize the sending servers according to the type they belong to, i.e. ESPs.


Provide a suitable name to this sending server entry, i.e. Amazon-II, SMTP-1, etc. Names will help to identify the server later in the view table, or while performing other functions like scheduling a campaign or follow-up, etc.


Which type of mail server are you adding? Select from the available options in the dropdown. Currently, available types can belong to the following categories.

1) PHP Mail

Set up the sending server function using the default PHP mail function. The default function uses the settings in PHP to relay emails through Sendmail. The default PHP function has its limitations and is likely to have difficulties in building a reputation of a bulk-sending system, therefore, this is seldom an option for large-volume senders. However, adding this server option can later be used to send system notifications internal notification emails, etc.


If you are looking to use an SMTP function to configure your mail server, choose this type from the dropdown. You can have it connected with a custom-configured SMTP server by providing the following details, or even can use the SMTP of some email delivery service i.e. SendGrid or others.

Fields Specific to SMTP

Host- Set the SMTP host as provided by your email service provider, it is readily available in case of using the SMTPs of some email service provider, i.e. smtp.gmail.com, and in case of the custom-configured SMTP server, it will be the complete path to your SMTP server.

  • Username & Password– Provide the username and password of the SMTP in the respective fields
  • Port– 25 is the default port of the SMTP, but since several inbound, server blocks port 25, alternative ports are used. Some other largely used ports are 2525, 587, and 465 for the encrypted connection.
  • Encryption– If the connection to the server need encryption? You’ve got the option to choose the type of encryption required. If not, you can continue with the first option “None”.

3)ESPs or Email Sending Services

Ninja EMS offers integration with several leading email-sending services and cloud-based email relays to help you configure your system with an email delivery service of your choice, i.e. Amazon SES, SendGrid, Mailgun, and others. Discussing the process of integrating every single one of these services isn’t in the scope of this article, here we’ll only discuss the general application of email-sending services as a type of sending server like PHP Mail and SMTP.

Fields Specific to ESP Configuration

In the case of selecting to configure the email server type “ESP” (SendGrid, Amazon, Mailgun, etc.), the fields that appear may be different in case of every ESP you select from the list. It is because the APIs of these services are being used to work seamlessly work with Ninja EMS, and every service on the list has some unique method and requirement for authenticating the API request.   

  • The API Keys– Most of the sending services make a combination of credentials it requires to validate and authenticate an API request coming from custom code or 3rd party software like Ninja EMS. But, one thing that most of these services would ask for the user account verification is the API key or API token, apart from the Amazon SES validates the API somewhat differently. You can locate the API key in your account of a specific service e.g. Mailgun has it under “Settings” in your account and in SendGrid you’ve got a separate link in your account to create the API key. Provide an API key of a valid account of your selected service in this field to proceed. Providing the wrong API key, an invalid API, or an API key of a suspended account would result in an error.
  • Secondary Authentication Factor– As has already been mentioned most of these services ask for a combination of credentials to authenticate for an API request, where the API key is widely used primary authentication method for the validity of a user account, the secondary authentication factor may vary for every service and sometimes it doesn’t require the second authentication factor at all, i.e. in case of SendGrid. While for the other services, it is sometimes the custom domain you’ve authenticated with like a Mailgun account, or the Account ID for some cases i.e. of your Elastic Email account.
  • Amazon SES Authentication Credentials– Amazon API behaves somewhat differently and asks for credentials different than other services to learn if you’ve got valid permission to access/execute the services you’ve requested. These include the combination of the AWS access key and key ID to validate and authenticate the send email request you generate from the Ninja EMS interface. You may also need to mention the Amazon Region for the AWS available zones.

General and From Information

Here it comes to the portion of the sending server configuration that remains alike in case of selecting all types of the available sending server, no matter if it is default PHP Mail, SMTP or ESPs API. This information includes the routing information of the sending i.e. From Name, Email, and Return-path. Recipient of the email message will be able to see all the information you will provide/ select for the respective fields here on.

  • From Name– Your email will appear to be sent from this name, it can be like Jonathan, Kelly or even your company name.
  • From Email– An email address that the recipient will see as a sender email. In Ninja EMS, the send from email constitutes from the Sender Domain and a local part before @. The first field is the text box where you will write the preferred local part of from email, i.e. John, while the domain part after @ is only selectable from the earlier configured/saved sending domains. Click to start setting up a Sending Domain if you haven’t done so already.
  • Reply Email– an email address where the replies of your campaigns will be received.

Bounce Email

Select the bounce handler to receive and process the bounce notices for this configuration. You can only select from the earlier saved bounce handlers, and if you still haven’t setup a bounce handler, click the small plus (+) icon to start adding one.

Add Bounce Handler

Sending Speed

Some ISPs throttle the number of emails allowed-in from a specific sender’s domain and corresponding reputation of the sender. It is important for the sender side to have a mechanism in-placed using which the sending volumes can be throttled. Using this function you can control the speed of out-going emails from a specific sending server. Two options are available to select the desired one.

  • Unlimited– If you don’t want to impose a restriction on the number of out-going emails. The system will automatically control the limits with its in-built schema.
  • Limited– Select the option if you want to limit the sending volumes of out-going emails. You will need to work with two fields to impose the hourly or daily sending limits for the sending server, a first text field for writing down the number and then selecting the preferred time interval between “Hourly” or “Daily”.