Przejdź do głównej zawartości

Załączniki i obrazy inline

Frontmail pozwala dodać pliki do e-maila na cztery sposoby. Załączniki są dostępne w płatnych planach; maksymalny łączny rozmiar na żądanie zależy od planu (zobacz Plany).

Sposób Gdzie ustawić Do czego
Stałe załączniki Ustawienia szablonu Ten sam plik w każdym e-mailu (cennik, regulamin w PDF)
Dynamiczne base64 attachments w żądaniu wysyłki Małe generowane pliki (≤ kilkaset kB)
Przesyłanie plików POST /v1/uploads, potem attachments: [{ upload_id }] Większe pliki, pliki wybrane przez użytkowników
Pliki z formularza Pola plików w sendForm() / /v1/send-form Pliki dołączone do formularza HTML

Stałe załączniki to pliki dołączane do każdego e-maila wysłanego danym szablonem (do 10 na szablon). Są przechowywane w S3 i wliczają się do limitu rozmiaru na żądanie. Edytor szablonu pokazuje je w Ustawienia → Ochrona → Stałe załączniki; przesyłanie ich z panelu nie jest jeszcze dostępne – jeśli potrzebujesz takiego załącznika, napisz na support@frontmail.dev.

Najpierw włącz Zezwól na załączniki z formularza w Ustawienia → Ochrona szablonu; w przeciwnym razie żądania z załącznikami kończą się błędem attachments_not_allowed.

await send('svc_01J9…', 'tpl_invoice', { name: 'Anna' }, {
attachments: [
{ filename: 'invoice.pdf', contentType: 'application/pdf', contentBase64: pdfBase64 },
],
});
"attachments": [
{ "filename": "invoice.pdf", "content_type": "application/pdf", "content_base64": "JVBERi0xLjcK…" }
]

Base64 powiększa żądanie o jedną trzecią – dla wszystkiego większego niż kilkaset kilobajtów użyj przesyłania plików.

  1. Poproś o URL do przesłania (klucz publiczny lub prywatny):

    Okno terminala
    curl https://api.frontmail.dev/v1/uploads \
    -H 'Content-Type: application/json' \
    -H 'X-Frontmail-Public-Key: pk_4f2a…' \
    -d '{ "filename": "cv.pdf", "content_type": "application/pdf", "size": 482113 }'
    {
    "upload_id": "upl_01J9Z3",
    "url": "https://uploads.frontmail.dev/…",
    "method": "PUT",
    "headers": { "Content-Type": "application/pdf" },
    "expires_at": "2026-09-24T11:00:00Z"
    }
  2. Wyślij plik metodą PUT na url ze zwróconymi headers przed expires_at.

  3. Odwołaj się do niego w wysyłce: "attachments": [{ "upload_id": "upl_01J9Z3" }].

Zadeklarowany size jest od razu sprawdzany z limitem twojego planu (attachment_too_large), a zapisany obiekt jest sprawdzany ponownie przy wysyłce wiadomości.

W sendForm() każde <input type="file"> w formularzu staje się załącznikiem:

<input type="file" name="cv" accept="application/pdf">

Dynamiczne załączniki pochodzą od każdego, kto może użyć twojego formularza, więc Frontmail odrzuca typy plików, które uruchamiają kod lub typowo przenoszą phishing, z błędem attachments_not_allowed: pliki wykonywalne i instalatory (.exe, .msi, .msix, .appx, .scr, .com, .bat, .cmd, .cpl, .dll, .jar, .app, .pkg, …), skrypty (.js, .jse, .vbs, .wsf, .ps1, .hta, …), skróty (.lnk, .url, .library-ms, …), obrazy dysków (.iso, .img, .vhd, .vhdx, .dmg), strony internetowe i grafikę wektorową (.html, .htm, .xhtml, .mht, .svg), OneNote (.one) oraz pliki Office z makrami (.docm, .xlsm, .pptm, …). Najpierw czyszczone są nazwy plików: usuwane są niewidoczne znaki i znaki zapisu od prawej do lewej (którymi można przebrać invoice<U+202E>fdp.exe za invoiceexe.pdf) oraz kropki i spacje na końcu, więc report.exe. liczy się jako .exe.

Przy kluczu publicznym POST /v1/uploads wymaga też co najmniej jednego szablonu, który zezwala na załączniki z formularza, a przesyłane pliki mają wspólny dzienny budżet 200 × limit załączników twojego planu na organizację.

Masz dwie możliwości:

  • Obrazy hostowane – użyj bezwzględnego URL https:// w <img src>. Najlepsze do logo i ozdobników: e-maile są małe, a klienty pobierają obrazy na żądanie.
  • Obrazy CID – stały załącznik z content ID, np. logo, do którego odwołujesz się przez <img src="cid:logo" alt="Example sp. z o.o.">. Obraz jest osadzony w e-mailu, więc wyświetla się nawet przy zablokowanych obrazach zdalnych, ale powiększa każdy e-mail.

Zawsze ustawiaj alt przy obrazach – kontrole szablonu ostrzegają, gdy go brakuje.