Log In

SMTP2GO vs Postmark: real support, global delivery, a free plan that stays free.

Try SMTP2GO Free

No credit card required

How many emails do you need to send each month? How many emails do you send per month?
1K 10K 40K 100K 250K 500K 1 Million >3 Million+

Get 2 months free by paying yearly.

All prices in USD

Our Promise: If you don’t love us within 30 days, we’ll give you a full refund.

All-inclusive features for all plans:

  • Fantastic Support

  • Ticket Support
  • Toll-Free Phone*
  • Live Chat*
  • Setup Assistance
  • Powerful Deliverability

  • Automatic DKIM/SPF
  • Feedback Loops
  • Blacklist Monitoring
  • Spamtrap Detection
  • Clear Reporting

  • Real-Time Analytics
  • Bounce/Spam Tracking
  • Unsubscribes
  • Weekly Summaries
  • Intelligent Network

  • Servers Worldwide
  • Best-Path Routing
  • Redundancy Built-In
  • TLS/SSL Secured

*Limited to 14 days for the free plan.

Free

$ 0/mo 0/year

Starter

$

Professional

$

An understandable API.

If you've tried using APIs in the past, you'll know they are often extremely complex and frustrating.

Our API is designed to be used with the minimum of mental effort from your developers. We include full examples of code in multiple languages. See our API documentation.

  • JavaScript
  • NodeJS
  • PHP
  • Ruby
  • Python
      $.ajax({
url: "https://api.smtp2go.com/v3/email/send",
method: 'POST',
headers: { 'Content-Type': "application/json" },
data: JSON.stringify({
'api_key': "api-526EA362E1E6AAD9F23C91C88F4E",
'to': [
"Dave <dave@example.com>" ],
'sender': "Matt <matt@example.com>",
'subject': "Testing smtp2go!",
'text_body': "Test message."
}),
})
.done(function(result) { console.log(result); })
.fail(function(err) { throw err; });



      var request = require('request');
request.post({
url: "https://api.smtp2go.com/v3/email/send",
headers: { 'Content-Type': "application/json" },
body: JSON.stringify({
'api_key': "api-526EA362E1E6AAD9F23C91C88F4E",
'to': [
"Dave <dave@example.com>"
],
'sender': "Matt <matt@example.com>",
'subject': "Testing smtp2go!",
'text_body': "Test message."
}),
}, function(err, response, body){ console.log(body); });







      <?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($curl, CURLOPT_URL, "https://api.smtp2go.com/v3/email/send");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(array(
"api_key" => "api-526EA362E1E6AAD9F23C91C88F4E",
"to" => array(
0 => "Dave <dave@example.com>"
),
"sender" => "Matt <matt@example.com>",
"subject" => "Testing smtp2go!",
"text_body" => "Test message."
)));
$result = curl_exec($curl);
echo $result;
?>
      uri = URI("https://api.smtp2go.com/v3/email/send")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
headers = { "Content-Type" => "application/json" }
request = Net::HTTP::Post.new(uri.request_uri, headers)
request.body = {
"api_key" => "api-526EA362E1E6AAD9F23C91C88F4E",
"to" => [
"Dave <dave@example.com>"
],
"sender" => "Matt <matt@example.com>",
"subject" => "Testing smtp2go!",
"text_body" => "Test message."
}.to_json
@result = http.request(request).body
puts @result



      import requests
import json
payload = {
"api_key": "api-526EA362E1E6AAD9F23C91C88F4E",
"to": [
"Dave <dave@example.com>"
],
"sender": "Matt <matt@example.com>",
"subject": "Testing smtp2go!",
"text_body": "Test message."
}
headers = { "Content-Type": "application/json" }
res = requests.post("https://api.smtp2go.com/v3/email/send", headers=headers, data=json.dumps(payload))
if res.status_code == requests.codes.ok:
print(res.json)
else:
print("An Error Occurred: " + res.text)

Deliverability, tracking, stability - read what's been said about us below.

Ready to get started?

Try SMTP2GO free for as long as you like:

Try SMTP2GO Free → Paid plans available for over 1,000 emails/month.