Guide til integration på hjemmesider og systemer.
Version v1.1.0https://mailer.junkerne.dk
Endpoint til mailafsendelse: POST /api/send
Alle kald til /api/send skal have en API nøgle i header:
X-API-Key: mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
API nøglen oprettes i adminpanel eller brugerpanel.
POST /api/send
Content-Type: application/json
X-API-Key: mk_...
{
"to": "kunde@eksempel.dk",
"subject": "Emne",
"body": "Beskedtekst"
}
to (påkrævet): modtager email
subject (valgfri): emne, default bruges hvis tom
body (valgfri): beskedtekst
Afsendernavn styres centralt og sættes altid til Fra hjemmesiden.
from_name, from_email, sender_name og from fra request ignoreres.
Afsender-email styres centralt via serverens DEFAULT_FROM_EMAIL / UPSTREAM_FROM_EMAIL.
200 OK
{"ok":true,"message":"Mail sendt"}
401 Unauthorized
{"ok":false,"error":"Unauthorized"}
400 Bad Request
{"ok":false,"error":"Missing field: to"}
429 Too Many Requests
{"ok":false,"error":"Rate limit exceeded"}
curl -X POST "https://mailer.junkerne.dk/api/send" \
-H "Content-Type: application/json" \
-H "X-API-Key: mk_INDSAET_DIN_NOEGLE" \
-d '{"to":"mail@domæne.dk","subject":"Test","body":"Hej fra API"}'
const res = await fetch("https://mailer.junkerne.dk/api/send", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.MAILER_API_KEY
},
body: JSON.stringify({
to: "mail@domæne.dk",
subject: "Velkommen",
body: "Tak for din tilmelding"
})
});
const data = await res.json();
console.log(data);
Vigtigt: Kør dette på server/backend, ikke direkte i browser med synlig API nøgle.
<?php
$payload = json_encode([
'to' => 'mail@domæne.dk',
'subject' => 'Ordrebekræftelse',
'body' => 'Tak for din ordre'
]);
$ch = curl_init('https://mailer.junkerne.dk/api/send');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: ' . getenv('MAILER_API_KEY')
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode . "\n";
echo $response;
$response = wp_remote_post('https://mailer.junkerne.dk/api/send', [
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => getenv('MAILER_API_KEY'),
],
'body' => wp_json_encode([
'to' => 'mail@domæne.dk',
'subject' => 'Kontaktformular',
'body' => 'Ny besked fra kontaktformularen',
]),
'timeout' => 20,
]);
$code = wp_remote_retrieve_response_code($response);
$body = wp_remote_retrieve_body($response);
1. Del aldrig API nøgler i frontend JavaScript.
2. Gem nøgler i miljøvariabler på backend/server.
3. Brug én nøgle pr. domæne/integration.
4. Rotér nøgle straks ved mistanke om læk.
5. Brug adminpanel til at deaktivere kompromitterede nøgler.
Hvis du får 401, er nøglen forkert eller deaktiveret.
Hvis du får 400, mangler payload-felter (typisk to).
Hvis du får 500, kontakt admin og oplys tidspunkt + request-id hvis tilgængeligt.