Integrations-Dokumentation

Zugangsdaten erhalten Sie nach Freischaltung Ihres Mandanten. Platzhalter in den Beispielen durch Ihre Werte ersetzen.

SMTP-Versand

Für Webformulare und transaktionale E-Mails über Ihre Subdomain ihr-name.sendwerk.at.

Hostmail.sendwerk.at (oder mandantenspezifisch)
Port587
VerschlüsselungSTARTTLS
AuthSMTP-Benutzername + Passwort
Fair-Use5.000 E-Mails/Monat inklusive

SMTP in Laravel konfigurieren

Nach Freischaltung tragen Sie die Zugangsdaten in .env ein:

MAIL_MAILER=smtp
MAIL_HOST=mail.sendwerk.at
MAIL_PORT=587
MAIL_USERNAME=ihr-smtp-user
MAIL_PASSWORD=ihr-smtp-passwort
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@ihr-name.sendwerk.at
MAIL_FROM_NAME="${APP_NAME}"

Testen mit php artisan tinker und Mail::raw('Test', fn($m) => $m->to('test@example.com'));. Ausführliche Anleitung: SMTP für Laravel.

WordPress & Contact Form 7

Für WordPress empfehlen wir ein SMTP-Plugin (z. B. WP Mail SMTP oder FluentSMTP). Einstellungen:

  • Mailer: Other SMTP
  • SMTP Host: mail.sendwerk.at
  • Encryption: TLS (Port 587)
  • Authentication: aktiviert
  • From E-Mail: Adresse auf Ihrer Mandanten-Subdomain

Contact Form 7 nutzt standardmäßig wp_mail() — nach SMTP-Plugin-Konfiguration werden Formular-Mails über Sendwerk versendet.

SPF, DKIM und DMARC

Sendwerk richtet bei der Einrichtung die DNS-Einträge für Ihre Mandanten-Subdomain ein:

  • SPF — definiert, welche Server E-Mails für Ihre Domain versenden dürfen
  • DKIM — digitale Signatur zur Authentifizierung des Absenders
  • DMARC — Richtlinie, wie empfangende Server mit nicht authentifizierten Mails umgehen

Das verbessert die Zustellbarkeit gegenüber Shared-Hosting-SMTP. Der aktuelle Stand ist über die Status-API abrufbar.

Status-API

JSON-Snapshot Ihrer Mail-Infrastruktur — ideal für Monitoring und Dashboards.

GET https://api.sendwerk.at/v1/status
Authorization: Bearer swk_live_…

Rate-Limit: 60 Anfragen/Minute pro API-Key.

Beispiel-Antwort (nach Worker-Aktivierung):

{
  "subdomain": "ihr-name.sendwerk.at",
  "overall": "ok",
  "checked_at": "2026-06-24T12:00:00Z",
  "checks": {
    "mx": { "status": "ok" },
    "spf": { "status": "warning", "detail": "…" }
  }
}

Beispiele — SMTP

PHP (PHPMailer)

$mail->isSMTP();
$mail->Host       = '{{SMTP_HOST}}';
$mail->SMTPAuth   = true;
$mail->Username   = '{{SMTP_USER}}';
$mail->Password   = '{{SMTP_PASS}}';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port       = 587;
$mail->setFrom('{{FROM_EMAIL}}');
$mail->addAddress('{{TO_EMAIL}}');
$mail->Subject = 'Kontaktanfrage';
$mail->Body    = 'Neue Nachricht …';
$mail->send();

Python

with smtplib.SMTP('{{SMTP_HOST}}', 587, timeout=30) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.login('{{SMTP_USER}}', '{{SMTP_PASS}}')
    smtp.send_message(msg)

Node.js (nodemailer)

const transporter = nodemailer.createTransport({
  host: '{{SMTP_HOST}}', port: 587, secure: false,
  auth: { user: '{{SMTP_USER}}', pass: '{{SMTP_PASS}}' },
});
await transporter.sendMail({
  from: '{{FROM_EMAIL}}', to: '{{TO_EMAIL}}',
  subject: 'Kontaktanfrage', text: '…',
});

Beispiele — Status-API

curl

curl -sS -H "Authorization: Bearer {{API_KEY}}" \
  https://api.sendwerk.at/v1/status

PHP

$ctx = stream_context_create(['http' => [
  'header' => "Authorization: Bearer {{API_KEY}}\r\n",
]]);
$data = json_decode(file_get_contents(
  'https://api.sendwerk.at/v1/status', false, $ctx
), true);

Python

requests.get('https://api.sendwerk.at/v1/status',
  headers={'Authorization': f'Bearer {{API_KEY}}'}).json()

Node.js

const res = await fetch('https://api.sendwerk.at/v1/status', {
  headers: { Authorization: 'Bearer {{API_KEY}}' },
});
console.log(await res.json());

Fehlercodes API

HTTPBedeutung
401Key fehlt, ungültig oder widerrufen
404Mandant nicht gefunden
429Rate-Limit überschritten

Noch kein Mandant? Jetzt anfragen · Preise ansehen