Authentifizierung
Beide Methoden verwenden dieselben Zugangsdaten: einen API-Schlüssel, der aus einer key ID (öffentlich) und einem key secret besteht. Schlüssel erstellen Sie im Dashboard unter app.onesend.eu.
Die REST-Authentifizierung nutzt ein Bearer-Token aus key ID und key secret, verbunden durch einen Doppelpunkt:
Authorization: Bearer YOUR_KEY_ID:YOUR_KEY_SECRET
Bei SMTP dient die key ID als Benutzername und das key secret als Passwort. Es gibt keine separaten SMTP-Zugangsdaten. Der API-Schlüssel ist die Berechtigung für REST und SMTP gleichermaßen.
Sende-Domain bestätigen
Sie können nur von einer Adresse einer Domain senden, die Sie hinzugefügt und bestätigt haben. Das ist auch während der Testphase erforderlich, um die gemeinsame IP-Reputation zu schützen. Die Bestätigung erfolgt einmalig im Dashboard.
Wenn Sie eine Domain hinzufügen, erzeugt onesend einen DKIM-Schlüssel und gibt Ihnen vier TXT-Einträge, die Sie bei Ihrem DNS-Anbieter veröffentlichen:
| Zweck | Host | Wert (Beispiel) |
|---|---|---|
| DKIM | onesend._domainkey.yourdomain.com | v=DKIM1; k=rsa; p=MIIB... |
| SPF | yourdomain.com | v=spf1 include:onesend.eu ~all |
| DMARC | _dmarc.yourdomain.com | v=DMARC1; p=none; rua=mailto:dmarc@onesend.eu |
| Inhaberschaft | _onesend.yourdomain.com | onesend-verify=YOUR_TOKEN |
Über DKIM wird die Bestätigung gesteuert. SPF und DMARC werden dringend empfohlen, die Domain wird jedoch allein über DKIM bestätigt. Der DKIM-Selector lautet onesend. Falls Sie bereits einen SPF-Eintrag haben, ergänzen Sie include:onesend.eu in Ihrem bestehenden Eintrag, statt einen zweiten anzulegen, denn eine Domain darf nur einen SPF-Eintrag haben. DNS-Änderungen brauchen einige Minuten bis wenige Stunden, bis sie wirksam sind.
Senden über die REST-API
POST https://api.onesend.eu/v1/email/send
Authorization: Bearer YOUR_KEY_ID:YOUR_KEY_SECRET
Content-Type: application/json
Anfrage-Body:
{
"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" }
}
Pflichtfelder sind from, to, subject und mindestens eines von html oder text. Die from-Adresse muss auf einer bestätigten Domain liegen. Die Felder cc, bcc, reply_to, text, headers und tags sind optional.
Bei Erfolg lautet die Antwort 202 Accepted und die Nachricht wird zur Zustellung eingereiht:
{ "message_id": "...", "status": "queued" }
Steht der Empfänger auf Ihrer Sperrliste, liefert die Anfrage weiterhin 200 (kein Fehler), der Versand wird übersprungen und nicht abgerechnet:
{ "message_id": "...", "status": "suppressed", "reason": "Recipient on suppression list (bounce)" }
Senden über SMTP
Richten Sie Ihren vorhandenen SMTP-Mailer auf onesend aus. Außer Host und Zugangsdaten sind keine Codeänderungen nötig.
Host: smtp.onesend.eu
Port: 587
Security: STARTTLS (required)
Username: YOUR_KEY_ID
Password: YOUR_KEY_SECRET
Es gelten dieselben Regeln wie bei REST: Die From-Adresse muss auf einer bestätigten Domain liegen, und gesperrte Empfänger werden übersprungen und nicht abgerechnet.
Codebeispiele
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);
Jede andere Sprache, jedes Framework und jedes Tool sendet über die obigen SMTP-Einstellungen, darunter Go net/smtp, Ruby, Java, Laravel, Rails, Django, WordPress und n8n.
Von einem anderen Anbieter migrieren
Die schnellste Migration ist SMTP: Host und Zugangsdaten ändern, alles andere bleibt gleich. Fügen Sie in jedem Fall zuerst Ihre Sende-Domain in onesend hinzu und bestätigen Sie sie, denn der Versand setzt eine bestätigte Domain voraus.
Amazon SES
Für SMTP ändern Sie den Host von email-smtp.REGION.amazonaws.com auf smtp.onesend.eu über Port 587 und verwenden Ihre onesend key ID und Ihr key secret statt der SES-SMTP-Zugangsdaten. Das ist direkt einsetzbar. Für REST nutzt SES mit SigV4 signierte Anfragen, daher hat die REST-API von onesend eine andere Form; wechseln Sie entweder zu POST /v1/email/send oder nutzen Sie SMTP für eine Migration ohne Codeänderungen. Sie können Ihre SES-Sperrliste exportieren und die CSV im Dashboard importieren.
SendGrid
Für SMTP nutzt SendGrid smtp.sendgrid.net mit dem Benutzernamen apikey. onesend nutzt smtp.onesend.eu, wobei der Benutzername Ihre key ID und das Passwort Ihr key secret ist. Für REST verwendet SendGrids /v3/mail/send eine andere JSON-Struktur; nutzen Sie stattdessen POST /v1/email/send von onesend.
Mailgun
Für SMTP ändern Sie den Host von smtp.mailgun.org auf smtp.onesend.eu und tauschen die Zugangsdaten. Für REST nutzt Mailgun formularcodierte Anfragen an /v3/DOMAIN/messages; nutzen Sie stattdessen das JSON-POST /v1/email/send von onesend.
Postmark
Für SMTP ändern Sie den Host von smtp.postmarkapp.com auf smtp.onesend.eu und tauschen die Zugangsdaten. Für REST nutzt Postmark einen X-Postmark-Server-Token-Header und einen anderen Body; nutzen Sie stattdessen POST /v1/email/send von onesend.
Zustellungs-Statuswerte
Eine Nachricht durchläuft diese Status:
queuedangenommen und wartet auf den Versand durch den Worker.sentan den empfangenden Mailserver übergeben.bouncedharter Bounce (dauerhaft). Die Adresse kommt auf Ihre Sperrliste.soft_bouncedvorübergehender Fehler, etwa ein volles Postfach. Wird erneut versucht, nicht gesperrt.complainedEmpfänger hat die Nachricht als Spam markiert. Kommt auf Ihre Sperrliste.suppressedEmpfänger stand bereits auf Ihrer Sperrliste. Übersprungen, nicht abgerechnet.invalidAdresse hat die Prüfung vor dem Versand nicht bestanden (falsche Syntax oder tote Domain).blockeddurch eine Richtlinienprüfung vor dem Versand blockiert.failedinterner Sendefehler.
Sperrliste
onesend führt pro Konto eine Sperrliste. Adressen landen automatisch darauf durch harte Bounces und Beschwerden, durch die Prüfung vor dem Versand, oder Sie fügen sie selbst hinzu. onesend erfasst sowohl den Grund (warum gesperrt) als auch die Quelle (wie sie dorthin kam) sowie den tatsächlichen Diagnosecode. Sie verwalten die Liste im Dashboard und können sie als CSV importieren oder exportieren.
Tarife und Abrechnung
Zum Senden sind eine bestätigte Domain und ein Tarif nötig. Die Testphase umfasst 100 E-Mails ohne Zeitlimit. Die kostenpflichtigen Tarife sind Starter und Growth, monatlich über Mollie (ein EU-Zahlungsanbieter) abgerechnet, mit korrekter MwSt. für Kunden innerhalb und außerhalb der EU, einschließlich Reverse Charge für geprüfte EU-Geschäfts-USt-IdNr. Mehrverbrauch wird abgerechnet, nicht blockiert, und gesperrte Sendungen werden nie gezählt. Aktuelle Preise und enthaltene Mengen finden Sie auf der Preisseite.
Souveränität und Compliance
- Betreibergesellschaft: WOCOO Management and Consulting GmbH, Wien, Österreich.
- Infrastruktur: Hetzner, Falkenstein, Deutschland. Keine US-Unterauftragsverarbeiter im Sendepfad.
- Auf DSGVO ausgelegt: Empfängerdaten liegen in einem Identitäts-Tresor, getrennt von den Sendeprotokollen, und jedes Konto legt seine eigene Aufbewahrungsrichtlinie fest. Sperrlisten-Daten und aggregierte Statistiken bleiben erhalten.
- Zustellbarkeit: SPF, DKIM mit 2048-Bit-Schlüsseln pro Domain und DMARC pro Sende-Domain. Dedizierte Sende-IPs auf Anfrage.
Bauen Sie eine Integration mit einem KI-Assistenten? Eine Klartextfassung dieser Referenz liegt unter /llms-full.txt