Email Provider - Inxmail

Partner Information


With nearly 20 years of experience, we are a pioneer in software development for email marketing. We support our customers and partners with fantastic service and grow their potential in a targeted way. In doing so, we draw upon a broad range of technology and services.

Our solutions are influenced by our strong relationships with customers. We flexibly adapt our solutions to meet specific customer needs. Expertise that pays off: We have been implementing successful email marketing and multichannel campaigns for over 2,000 customers in more than 20 countries since 1999.

  • Broad portfolio of technology, service and know-how - from the standard solution to individual solution packages
  • E-mail delivery solutions for highly personalized newsletters, transaction mails, and automated e-mail campaigns
  • Delivery security via whitelisted mail server even with high mail volumes
  • Powerful interfaces for seamless integration into existing system landscapes
  • Software made and hosted in Germany
  • DSGVO-compliant e-mail marketing
  • Co-founder and member of the Certified Senders Alliance (CSA)
  • Award Winning: Competent, Fast and Reliable Customer Service and Support
  • Personal advice and contact person


To install Inxmail run the command in the console:

	composer require spryker-eco/inxmail:1.0.0


To set up the Inxmail initial configuration, use the credentials you received from your Inxmail server. Space id, key id and secret you can get from Settings → API keys panel on Inxmail server:

	$config[InxmailConstants::API_EVENT_URL] = '';
	$config[InxmailConstants::KEY_ID] = '';
	$config[InxmailConstants::SECRET] = '';

Event names depend on your events names on Inxmail server:

	$config[InxmailConstants::EVENT_CUSTOMER_REGISTRATION] = '';
	$config[InxmailConstants::EVENT_CUSTOMER_RESET_PASSWORD] = '';
	$config[InxmailConstants::EVENT_ORDER_NEW] = '';
	$config[InxmailConstants::EVENT_ORDER_SHIPPING_CONFIRMATION] = '';
	$config[InxmailConstants::EVENT_ORDER_CANCELLED] = '';
	$config[InxmailConstants::EVENT_ORDER_PAYMENT_IS_NOT_RECEIVED] = '';


New customer registration event

Inxmail module has \SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailPostCustomerRegistrationPlugin. This plugin implements PostCustomerRegistrationPluginInterface and can be used in \Pyz\Zed\Customer\CustomerDependencyProvider::getPostCustomerRegistrationPlugins.

	use SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailPostCustomerRegistrationPlugin
	 * @return \Spryker\Zed\CustomerExtension\Dependency\Plugin\PostCustomerRegistrationPluginInterface[]
	protected function getPostCustomerRegistrationPlugins(): array
		return [
			new InxmailPostCustomerRegistrationPlugin(),

The customer asked to reset password event

Inxmail module has \SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailCustomerRestorePasswordMailTypePlugin. This plugin implements MailTypePluginInterface and can be used in \Pyz\Zed\Mail\MailDependencyProvider::provideBusinessLayerDependencies

	use \SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailCustomerRestorePasswordMailTypePlugin;

	 * @param \Spryker\Zed\Kernel\Container $container
	 * @return \Spryker\Zed\Kernel\Container
	public function provideBusinessLayerDependencies(Container $container)
		$container = parent::provideBusinessLayerDependencies($container);

		$container->extend(self::MAIL_TYPE_COLLECTION, function (MailTypeCollectionAddInterface $mailCollection) {
				->add(new InxmailCustomerRestorePasswordMailTypePlugin())

			return $mailCollection;


		return $container;

Order referenced commands

Inxmail module has four different commands:

  • \SprykerEco\Zed\Inxmail\Communication\Plugin\Oms\Command\InxmailNewOrderPlugin
  • \SprykerEco\Zed\Inxmail\Communication\Plugin\Oms\Command\InxmailOrderCanceledPlugin
  • \SprykerEco\Zed\Inxmail\Communication\Plugin\Oms\Command\InxmailPaymentNotReceivedPlugin
  • \SprykerEco\Zed\Inxmail\Communication\Plugin\Oms\Command\InxmailShippingConfirmationPlugin

You can use this commands in \Pyz\Zed\Oms\OmsDependencyProvider::getCommandPlugins

	use SprykerEco\Zed\Inxmail\Communication\Plugin\Oms\Command\InxmailNewOrderPlugin;

	 * @param \Spryker\Zed\Kernel\Container $container
	 * @return \Spryker\Zed\Oms\Communication\Plugin\Oms\Command\CommandCollection
	protected function getCommandPlugins(Container $container)
		$collection = parent::getCommandPlugins($container);

		$collection->add(new InxmailNewOrderPlugin(), 'Inxmail/SendNewOrderRequest');

		return $collection;

After that you are ready to use commands in OMS setup:

		<event name="authorize" onEnter="true" manual="true" command="Inxmail/SendNewOrderRequest"/>
		<event name="pay" manual="true" timeout="1 hour" />
		<event name="export" onEnter="true" manual="true" command="Oms/SendOrderConfirmation"/>
		<event name="ship" manual="true" command="Oms/SendOrderShipped"/>
		<event name="stock-update" manual="true"/>
		<event name="close" manual="true" timeout="1 hour"/>
		<event name="return" manual="true" />

API Requests

\SprykerEco\Zed\Inxmail\Business\Api\Adapter\EventAdapter which extend \SprykerEco\Zed\Inxmail\Business\Api\Adapter\AbstractAdapter contains all needed data for sending data to Inxmail for events.

It sends the request via  \Generated\Shared\Transfer\InxmailRequestTransfer

	<?xml version="1.0"?>
	<transfers xmlns=""

		<transfer name="InxmailRequest">
			<property name="event" type="string" />
			<property name="transactionId" type="string" />
			<property name="payload" type="array" />


The payload for customer loads from  \SprykerEco\Zed\Inxmail\Business\Mapper\Customer\AbstractCustomerMapper::getPayload and for order from  \SprykerEco\Zed\Inxmail\Business\Mapper\Order\AbstractOrderMapper. Abstract classes can be extended and changed in  \SprykerEco\Zed\Inxmail\Business\InxmailBusinessFactory.

For right URL's to images in the email body you should extend \SprykerEco\Zed\Inxmail\Business\Mapper\Order\AbstractOrderMapper and implement protected method getImageItemLink(ArrayObject $images).


Copyright and Disclaimer

See Disclaimer.


Last review date: Aug. 28th, 2018