API

Trimite e-mail prin REST sau SMTP.

onesend îți oferă o API REST și un releu SMTP gata de utilizare pentru e-mailuri tranzacționale. Suveran în UE, conform GDPR, găzduit în Germania. Mută-te de la Amazon SES, SendGrid, Mailgun sau Postmark schimbând doar hostul și cheia.

Bază REST

https://api.onesend.eu

Endpoint de trimitere

POST /v1/email/send

Auth REST

Authorization: Bearer KEY_ID:KEY_SECRET

Panou

https://app.onesend.eu

Host SMTP

smtp.onesend.eu

Port SMTP

587 (STARTTLS)

Utilizator SMTP

KEY_ID

Parolă SMTP

KEY_SECRET

Autentificare

Ambele metode folosesc aceleași date de acces: o cheie API, formată dintr-un key ID (public) și un key secret. Creezi chei în panou la app.onesend.eu.

Autentificarea REST folosește un token Bearer format din key ID și key secret unite prin două puncte:

Authorization: Bearer YOUR_KEY_ID:YOUR_KEY_SECRET

La SMTP, key ID este numele de utilizator, iar key secret este parola. Nu există date de acces SMTP separate de generat. Cheia API este acreditarea atât pentru REST, cât și pentru SMTP.

Verifică domeniul de trimitere

Poți trimite doar de la o adresă dintr-un domeniu pe care l-ai adăugat și verificat. Este necesar chiar și în perioada de probă, pentru a proteja reputația IP-ului partajat. Verificarea se face o singură dată, în panou.

Când adaugi un domeniu, onesend generează o cheie DKIM și îți oferă patru înregistrări TXT de publicat la furnizorul tău DNS:

ScopHostValoare (exemplu)
DKIMonesend._domainkey.yourdomain.comv=DKIM1; k=rsa; p=MIIB...
SPFyourdomain.comv=spf1 include:onesend.eu ~all
DMARC_dmarc.yourdomain.comv=DMARC1; p=none; rua=mailto:dmarc@onesend.eu
Proprietate_onesend.yourdomain.comonesend-verify=YOUR_TOKEN

DKIM este cel care condiționează verificarea. SPF și DMARC sunt puternic recomandate, dar domeniul se verifică doar pe baza DKIM. Selectorul DKIM este onesend. Dacă ai deja o înregistrare SPF, adaugă include:onesend.eu la înregistrarea existentă în loc să creezi una a doua, deoarece un domeniu poate avea o singură înregistrare SPF. Modificările DNS durează de la câteva minute la câteva ore până se propagă.

Trimitere cu API-ul REST

POST https://api.onesend.eu/v1/email/send
Authorization: Bearer YOUR_KEY_ID:YOUR_KEY_SECRET
Content-Type: application/json

Corpul cererii:

{
  "from": "hello@yourdomain.com",
  "to": ["recipient@example.com"],
  "cc": ["optional@example.com"],
  "bcc": ["optional@example.com"],
  "reply_to": "reply@yourdomain.com",
  "subject": "Hello from onesend",
  "html": "<h1>It works</h1>",
  "text": "It works",
  "headers": { "X-Custom": "value" },
  "tags": { "campaign": "welcome" }
}

Câmpurile obligatorii sunt from, to, subject și cel puțin unul dintre html sau text. Adresa from trebuie să fie pe un domeniu verificat. Câmpurile cc, bcc, reply_to, text, headers și tags sunt opționale.

În caz de succes, răspunsul este 202 Accepted, iar mesajul este pus în coadă pentru livrare:

{ "message_id": "...", "status": "queued" }

Dacă destinatarul este pe lista ta de suprimare, cererea returnează totuși 200 (nu o eroare), trimiterea este sărită și nu este facturată:

{ "message_id": "...", "status": "suppressed", "reason": "Recipient on suppression list (bounce)" }

Trimitere prin SMTP

Îndreaptă mailerul SMTP existent către onesend. Nicio modificare de cod în afară de host și date de acces.

Host:     smtp.onesend.eu
Port:     587
Security: STARTTLS (required)
Username: YOUR_KEY_ID
Password: YOUR_KEY_SECRET

Se aplică aceleași reguli ca la REST: adresa From trebuie să fie pe un domeniu verificat, iar destinatarii suprimați sunt săriți și nu sunt facturați.

Exemple de cod

curl (REST)

curl -X POST https://api.onesend.eu/v1/email/send \
  -H "Authorization: Bearer $ONESEND_KEY_ID:$ONESEND_KEY_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": ["recipient@example.com"],
    "subject": "Hello from onesend",
    "html": "<h1>It works</h1>",
    "text": "It works"
  }'

Node.js (REST, fetch)

const res = await fetch("https://api.onesend.eu/v1/email/send", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.ONESEND_KEY_ID}:${process.env.ONESEND_KEY_SECRET}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "hello@yourdomain.com",
    to: ["recipient@example.com"],
    subject: "Hello from onesend",
    html: "<h1>It works</h1>",
  }),
});
const data = await res.json();
console.log(res.status, data);

Node.js (SMTP, nodemailer)

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "smtp.onesend.eu",
  port: 587,
  requireTLS: true,
  auth: {
    user: process.env.ONESEND_KEY_ID,
    pass: process.env.ONESEND_KEY_SECRET,
  },
});

await transport.sendMail({
  from: "hello@yourdomain.com",
  to: "recipient@example.com",
  subject: "Hello from onesend",
  html: "<h1>It works</h1>",
});

Python (REST, requests)

import os, requests

r = requests.post(
    "https://api.onesend.eu/v1/email/send",
    headers={
        "Authorization": f"Bearer {os.environ['ONESEND_KEY_ID']}:{os.environ['ONESEND_KEY_SECRET']}"
    },
    json={
        "from": "hello@yourdomain.com",
        "to": ["recipient@example.com"],
        "subject": "Hello from onesend",
        "html": "<h1>It works</h1>",
    },
)
print(r.status_code, r.json())

Python (SMTP, smtplib)

import os, smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["From"] = "hello@yourdomain.com"
msg["To"] = "recipient@example.com"
msg["Subject"] = "Hello from onesend"
msg.set_content("It works")
msg.add_alternative("<h1>It works</h1>", subtype="html")

with smtplib.SMTP("smtp.onesend.eu", 587) as s:
    s.starttls()
    s.login(os.environ["ONESEND_KEY_ID"], os.environ["ONESEND_KEY_SECRET"])
    s.send_message(msg)

PHP (REST, curl)

$ch = curl_init("https://api.onesend.eu/v1/email/send");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer {$keyId}:{$keySecret}",
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "from" => "hello@yourdomain.com",
    "to" => ["recipient@example.com"],
    "subject" => "Hello from onesend",
    "html" => "<h1>It works</h1>",
  ]),
]);
$response = curl_exec($ch);

Orice alt limbaj, framework sau instrument trimite prin setările SMTP de mai sus, inclusiv Go net/smtp, Ruby, Java, Laravel, Rails, Django, WordPress și n8n.

Migrarea de la alt furnizor

Cea mai rapidă migrare este SMTP: schimbă hostul și datele de acces și lasă restul neatins. În toate cazurile, adaugă și verifică mai întâi domeniul de trimitere în onesend, deoarece trimiterea necesită un domeniu verificat.

Amazon SES

Pentru SMTP, schimbă hostul din email-smtp.REGION.amazonaws.com în smtp.onesend.eu pe portul 587 și folosește key ID și key secret onesend în locul datelor SMTP de la SES. Este gata de utilizare. Pentru REST, SES folosește cereri semnate SigV4, așa că API-ul REST onesend are altă formă; treci la POST /v1/email/send sau folosește SMTP pentru o migrare fără modificări de cod. Poți exporta lista de suprimare din SES și importa fișierul CSV în panou.

SendGrid

Pentru SMTP, SendGrid folosește smtp.sendgrid.net cu numele de utilizator apikey. onesend folosește smtp.onesend.eu, cu numele de utilizator setat pe key ID și parola pe key secret. Pentru REST, /v3/mail/send de la SendGrid folosește o structură JSON diferită; folosește în schimb POST /v1/email/send de la onesend.

Mailgun

Pentru SMTP, schimbă hostul din smtp.mailgun.org în smtp.onesend.eu și schimbă datele de acces. Pentru REST, Mailgun folosește cereri codificate ca formular către /v3/DOMAIN/messages; folosește în schimb JSON POST /v1/email/send de la onesend.

Postmark

Pentru SMTP, schimbă hostul din smtp.postmarkapp.com în smtp.onesend.eu și schimbă datele de acces. Pentru REST, Postmark folosește un antet X-Postmark-Server-Token și un corp diferit; folosește în schimb POST /v1/email/send de la onesend.

Valori de stare a livrării

Un mesaj trece prin aceste stări:

  • queued acceptat și în așteptare pentru trimitere de către worker.
  • sent predat serverului de e-mail destinatar.
  • bounced respingere definitivă (permanentă). Adresa este adăugată pe lista ta de suprimare.
  • soft_bounced eșec temporar, de exemplu o căsuță plină. Reîncercat, nesuprimat.
  • complained destinatarul l-a marcat ca spam. Adăugat pe lista ta de suprimare.
  • suppressed destinatarul era deja pe lista ta de suprimare. Sărit, nefacturat.
  • invalid adresa nu a trecut validarea înainte de trimitere (sintaxă greșită sau domeniu inexistent).
  • blocked blocat de o verificare de politici înainte de trimitere.
  • failed eroare internă de trimitere.

Listă de suprimare

onesend menține o listă de suprimare pentru fiecare cont. Adresele ajung pe ea automat în urma respingerilor definitive și a plângerilor, în urma validării dinainte de trimitere, sau le adaugi tu. onesend înregistrează atât motivul (de ce este suprimată), cât și sursa (cum a ajuns acolo), plus codul de diagnostic real. Gestionezi lista în panou și o poți importa sau exporta ca CSV.

Planuri și facturare

Pentru trimitere ai nevoie de un domeniu verificat și de un plan. Perioada de probă acoperă 100 de e-mailuri fără limită de timp. Planurile plătite sunt Starter și Growth, facturate lunar prin Mollie (un procesator de plăți din UE), cu TVA aplicat corect pentru clienți din UE și din afara UE, inclusiv taxare inversă pentru coduri de TVA de firmă din UE validate. Depășirea este facturată, nu blocată, iar trimiterile suprimate nu sunt niciodată numărate. Pentru prețuri actuale și volume incluse, vezi pagina de prețuri.

Suveranitate și conformitate

  • Societatea operatoare: WOCOO Management and Consulting GmbH, Viena, Austria.
  • Infrastructură: Hetzner, Falkenstein, Germania. Niciun subprocesator din SUA pe traseul de trimitere.
  • Construit pentru GDPR: datele destinatarilor stau într-un seif de identitate, separat de jurnalele de trimitere, iar fiecare cont își stabilește propria politică de păstrare. Datele listei de suprimare și statisticile agregate sunt păstrate.
  • Livrabilitate: SPF, DKIM cu chei de 2048 de biți per domeniu și DMARC per domeniu de trimitere. IP-uri de trimitere dedicate la cerere.

Construiești o integrare cu un asistent AI? O copie în text simplu a acestei referințe se află la /llms-full.txt