Manual programisty: send_email_api.php

Dokumentacja endpointu do wysyłki e-mail przez SMTP (PHPMailer).

POST application/json Auth: Bearer token w Authorization

1. Endpoint

Adreshttps://api.softspm.pl/send_email_api.php
Metoda HTTPPOST
PreflightOPTIONS zwraca 204
Content-Typeapplication/json
KodowanieUTF-8

2. Autoryzacja

Klucz API należy przekazać w nagłówku Authorization jako Bearer token:

Authorization: Bearer TWÓJ_KLUCZ_API

Uwaga: token musi znajdować się na liście kluczy API_KEYS['send_email_api.php'] po stronie serwera.

Brak nagłówka lub błędny token zwraca HTTP 401.

3. Parametry wejściowe (JSON body)

ParametrTypWymaganyOpis
tostringtakAdres e-mail odbiorcy. Musi przejść walidację FILTER_VALIDATE_EMAIL.
subject lub title lub tytulstringtakTytuł wiadomości. Max 255 znaków.
message lub body lub content lub trescstringtakTreść wiadomości. Max 20000 znaków.

Przykładowe body

{
  "to": "jan.kowalski@example.com",
    "title": "Przypomnienie",
    "body": "Wydarzenie odbędzie się jutro o 10:00."
}

4. Przykład request (cURL)

curl -X POST "https://api.softspm.pl/send_email_api.php" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer TWÓJ_KLUCZ_API" \
  -d '{
    "to":"jan.kowalski@example.com",
        "tytul":"Test API mail",
        "tresc":"To jest test wiadomości e-mail"
  }'

5. Przykład request (JavaScript / fetch)

const response = await fetch("https://api.softspm.pl/send_email_api.php", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer TWÓJ_KLUCZ_API"
  },
  body: JSON.stringify({
    to: "jan.kowalski@example.com",
        title: "Powiadomienie",
        content: "Treść wiadomości"
  })
});

const data = await response.json();
console.log(response.status, data);

6. Odpowiedzi API

6.1 Sukces (HTTP 200)

{
  "success": "Message has been sent"
}

6.2 Błędy

HTTPKomunikatZnaczenie
400Empty JSON payload.Puste body.
400Invalid JSON payload.Niepoprawna składnia JSON.
400Missing required fields: to, subject/title/tytul, message/body/content/trescBrak wymaganych pól.
400Invalid recipient e-mail address.Niepoprawny adres e-mail odbiorcy.
400Subject is too long.Przekroczono limit 255 znaków.
400Message is too long.Przekroczono limit 20000 znaków.
401Unauthorized - Invalid or missing API key.Brak lub błędny Bearer token.
405Only POST requests are allowed.Użyto innej metody HTTP niż POST.
500Mailer Error: message could not be sent.Błąd SMTP/PHPMailer po stronie serwera.
204(pusta odpowiedź)Poprawny preflight OPTIONS.

7. Uwagi implementacyjne

8. Checklista testów integracyjnych