Our customers love us

ufs rocher dominos jooble viessmann puma samsung"/ lot swatch karcher PWC radisson tata jackwolfskin sofitel
what is smtp

What are transactional email campaigns?

Transactional emails are automated messages sent in response to a subscriber’s actions, like signing up, resetting a password, or completing a purchase.

Set up your templates once, and our system will automatically send the right message at the right time — whether it’s a welcome email, password reset, or order confirmation.

smtp settings smtp settings

Send emails via SMTP

Easily connect your SMTP server to a CMS or CRM system, app, or website builder to start sending transactional emails right away — no extra setup needed.

Just copy the server address, port, login, and password from your SendPulse account and paste them into an app or online tool.

How to get started with SMTP
                    
<?php

use Sendpulse\RestApi\ApiClient;
use Sendpulse\RestApi\Storage\FileStorage;

$smtpSendMailResult = (new ApiClient('MY_API_ID', 'MY_API_SECRET', new FileStorage()))->post('smtp/emails', [
    'email' => [
        'html' => base64_encode('<p>Hello!</p>'),
        'text' => 'text',
        'subject' => 'Mail subject',
        'from' => ['name' => 'API package test', 'email' => 'from@test.com'],
        'to' => [['name' => 'to', 'email' => 'to@test.com']],
        'attachments_binary' => [
            'attach_image.jpg' => base64_encode(file_get_contents('../storage/attach_image.jpg'))
        ]
    ]]);

var_dump($smtpSendMailResult);
?>
                    
                

sample.php hosted with ❤ by

github.com/sendpulse/sendpulse-rest-api-php
                
# SendPulse's Ruby Library: https://github.com/sendpulse/sendpulse-rest-api-ruby
require './api/sendpulse_api'
sendpulse_api = SendpulseApi.new(API_CLIENT_ID, API_CLIENT_SECRET, API_PROTOCOL, API_TOKEN)

email = {
 html: '<p>Your email content goes here<p>',
 text: 'Your email text version goes here',
 subject: 'Testing SendPulse API',
 from: { name: 'Your Sender Name', email: 'your-sender-email@gmail.com' },
 to: [
  {
   name: "Subscriber's name",
   email: 'subscriber@gmail.com'
  }
 ]
}

sendpulse_api.smtp_send_mail(email)
                
            
                
# SendPulse's Python Library: https://github.com/sendpulse/sendpulse-rest-api-python
from pysendpulse import PySendPulse
if __name__ == "__main__":
    TOKEN_STORAGE = 'memcached'
    SPApiProxy = PySendPulse(REST_API_ID, REST_API_SECRET, TOKEN_STORAGE)
    email = {
        'subject': 'This is the test task from REST API',
        'html': '<p>This is a test task from https://sendpulse.com/api REST API!<p>',
        'text': 'This is a test task from https://sendpulse.com/api REST API!',
        'from': {'name': 'John Doe', 'email': 'john.doe@example.com'},
        'to': [
            {'name': 'Jane Roe', 'email': 'jane.roe@example.com'}
        ]
    }
    SPApiProxy.smtp_send_mail(email)
                
            
                
// SendPulse's Java Library https://github.com/sendpulse/sendpulse-rest-api-java
import com.sendpulse.restapi.Sendpulse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Example {
    public static void main(String[] args) {
        Sendpulse sendpulse = new Sendpulse(API_CLIENT_ID, API_CLIENT_SECRET);
        Map<String, Object> from = new HashMap<String, Object>();
        from.put("name", "Your Sender Name");
        from.put("email", "your-sender-email@gmail.com");

        ArrayList<Map> to = new ArrayList<Map>();
        Map<String, Object> elementto = new HashMap<String, Object>();
        elementto.put("name", "Subscriber's name");
        elementto.put("email", "subscriber@gmail.com");
        to.add(elementto);

        Map<String, Object> emaildata = new HashMap<String, Object>();
        emaildata.put("html","Your email content goes here");
        emaildata.put("text","Your email text version goes here");
        emaildata.put("subject","Testing SendPulse API");
        emaildata.put("from",from);
        emaildata.put("to",to);

        Map<String, Object> result = (Map<String, Object>) sendpulse.smtpSendMail(emaildata);
        System.out.println("Result: " + result);
    }
}
                
            

sample.java hosted with ❤ by

github.com/sendpulse/sendpulse-rest-api-java
                
// SendPulse's Node.JS Library: https://github.com/sendpulse/sendpulse-rest-api-node.js
var sendpulse = require("./api/sendpulse.js");
sendpulse.init(API_USER_ID, API_SECRET, TOKEN_STORAGE);

var email = {
  "html" : "<p>Your email content goes here</p>",
  "text" : "Your email text version goes here",
  "subject" : "Testing SendPulse API",
  "from" : {
    "name" : "Your Sender Name",
    "email" : "your-sender-email@gmail.com"
  },
  "to" : [ {
    "name" : "Subscriber's name",
    "email" : "subscriber@gmail.com"
  } ]
};

var answerGetter = function answerGetter(data){
    console.log(data);
}

sendpulse.smtpSendMail(answerGetter, email);
                
            
                
#import "Sendpulse.h" // SendPulse's Obj-C Library https://github.com/sendpulse/sendpulse-rest-api-objective-c

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomethingWithTheData:) name:@"SendPulseNotification" object:nil];

    Sendpulse* sendpulse = [[Sendpulse alloc] initWithUserIdandSecret:userId :secret];

    NSDictionary *from = [NSDictionary dictionaryWithObjectsAndKeys:@"Your Sender Name", @"name", @"your-sender-email@gmail.com", @"email", nil];

    NSMutableArray* to = [[NSMutableArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"Subscriber's name", @"name", @"subscriber@gmail.com", @"email", nil], nil];

    NSMutableDictionary *emaildata = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"<b>Your email content goes here</b>", @"html", @"Your email text version goes here", @"text",@"Testing SendPulse API",@"subject",from,@"from",to,@"to", nil];

    [sendpulse smtpSendMail:emaildata];
}

- (void)doSomethingWithTheData:(NSNotification *)notification {
    NSMutableDictionary * result = [[notification userInfo] objectForKey:@"SendPulseData"];
    NSLog(@"Result: %@", result);
}

Send emails via API

Try our user-friendly API to send emails faster and easily scale your transactional campaigns.

To connect, simply add the ID and Secret from your SendPulse account to an email client and run the "Authorization" API method.

API documentation
smtp templates smtp templates

Create templates with our intuitive drag-and-drop builder

Easily send transactional emails via API using customizable templates for all your notifications. Personalize every email with variables like customer name, order number, product list, or payment date to add real value to your campaigns.

Access over 130 pro-level HTML templates with every pricing plan, including the free one.

How to send emails via API using templates

Track your transactional email performance

Measure email metrics regularly to improve your email marketing performance and ROI. All SendPulse reports — on open and click-through rates, inbox placement, delivery rates, errors, and spam complaints — are downloadable.

How to view SMTP statistics
history
smtp team smtp team smtp team smtp team

Collaborate with your team

Invite your team members and manage their access rights to distribute the workload efficiently. You can assign standard user roles — editor, designer, analyst, accountant, manager — or create custom ones.

How to manage user roles

Send up to 12,000 transactional emails per month for free or upgrade to a paid plan if needed — choose between pay-as-you-go pricing or a monthly subscription.

Easy-to-use transactional email tools

smtp ip
Dedicated IP addresses

Boost your sender reputation and avoid blacklisting with our dedicated IP option, included in our 100,000-email pricing plan.

smtp ip
SPF and DKIM authentication

SPF and DKIM records help verify your sender’s identity to prevent your transactional emails from landing in a spam folder.

smtp ip
List of unsubscribed contacts

Your campaigns will not be sent to unsubscribed contacts, even if they remain in your mailing lists.

smtp ip
Open and click tracking

Analyze open and click-through rates to refine your email strategy for better engagement.

smtp ip
Custom tracking domain

Remove SendPulse branding by using your own domain to track email opens and clicks.

smtp ip
Webhooks

Get immediate updates on email statuses, including delivered, undelivered, opened, or clicked, directly into your system.

FAQ

The Simple Message Transfer Protocol is a method of exchanging information between a sender’s and a recipient’s servers. You can use the SendPulse SMTP server to send HTML emails separately from other features of our service.

An SMTP server allows you to send all sorts of transactional emails, e.g., confirmation emails, abandoned cart emails, shipping updates, notifications, etc. SendPulse’s SMTP server is reliable and has a high deliverability rate and sender reputation.

You need to register with SendPulse, fill in a simple profile form, and set up authentication parameters. Follow the guide and remember that our customer support team is always there to help.

With SendPulse, you can send up to 12,000 free emails monthly. If you want to send a larger amount of emails via our SMTP server, you need to choose between two paid plans — “Monthly subscription“ or “Pay as you go.” Learn more about SMTP server pricing here.

Deliver essential information to your audience with transactional emails via SMTP or API

Provide an engaging experience that encourages purchases and keeps customers coming back into your sales pipeline.

12,000 emails per month for free