EmailJS to usługa typu SaaS, która umożliwia wysyłkę wiadomości e-mail bezpośrednio z poziomu przeglądarki. Zamiast budować i utrzymywać własne API w technologiach takich jak Node.js czy PHP, łączysz frontend z infrastrukturą EmailJS, która na podstawie Twojego żądania realizuje wysyłkę poprzez skonfigurowaną usługę e-mail.
Jak to działa?
W tradycyjnym modelu aplikacja frontendowa przesyła dane do serwera, który przez protokół SMTP wysyła wiadomość. EmailJS upraszcza ten proces: Twoja aplikacja wysyła żądanie do API EmailJS, a usługa ta – korzystając z Twoich ustawień – inicjuje wysyłkę u wybranego dostawcy (np. Gmail, Outlook, SendGrid).
Kluczowe parametry konfiguracji
W kodzie będziesz operować trzema identyfikatorami, których nie należy ze sobą mylić:
Public Key: Klucz inicjalizacyjny SDK. Jest publiczny z założenia i identyfikuje Twoje konto w systemie.
Service ID: Identyfikator skonfigurowanej usługi e-mail w panelu EmailJS.
Template ID: Unikalny kod szablonu wiadomości, który definiuje jej treść, pola dynamiczne i adresata.
Implementacja w React (Standard 2024+)
Zgodnie z aktualną dokumentacją, SDK należy zainicjować globalnie. Poniższy przykład wykorzystuje nowoczesną składnię async/await, co ułatwia czytelną obsługę sukcesu i błędów.
JavaScript
import React, { useRef, useEffect } from 'react';
import emailjs from '@emailjs/browser';
export const ContactUs = () => {
const form = useRef();
useEffect(() => {
// Globalna konfiguracja SDK (Public Key)
emailjs.init("TWOJ_PUBLIC_KEY");
}, []);
const sendEmail = async (e) => {
e.preventDefault();
try {
// Przesyłamy Service ID oraz Template ID
const result = await emailjs.sendForm('YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', form.current);
console.log('Sukces!', result.status, result.text);
alert('Wiadomość została wysłana!');
form.current.reset(); // Czyszczenie formularza po sukcesie
} catch (error) {
console.error('Błąd wysyłki:', error);
alert('Wystąpił problem podczas wysyłki wiadomości.');
}
};
return (
<form ref={form} onSubmit={sendEmail}>
<label>Imię</label>
<input type="text" name="user_name" required />
<label>Email</label>
<input type="email" name="user_email" required />
<label>Wiadomość</label>
<textarea name="message" required />
<button type="submit">Wyślij</button>
</form>
);
};Bezpieczeństwo: Allowlist i reCAPTCHA
Ponieważ publicKey jest widoczny w kodzie strony, bezpieczeństwo Twojego konta opiera się na dodatkowych mechanizmach w panelu EmailJS:
Allowlist domen: To krytyczne zabezpieczenie. Musisz zdefiniować domeny (np.
mojastrona.pl), z których API ma prawo przyjmować żądania. Dzięki temu nikt nie "podepnie" Twojego klucza pod inną stronę.reCAPTCHA: EmailJS wspiera weryfikację reCAPTCHA (v2). Wymaga to rejestracji domeny w usłudze Google oraz wprowadzenia klucza prywatnego (secret key) w ustawieniach szablonu EmailJS, co skutecznie blokuje boty spamujące.
Ograniczenia i plany
Plan darmowy jest idealny do testów i małych projektów, ale posiada konkretne limity techniczne zgodne z oficjalnym cennikiem:
| Cecha | Specyfikacja (Free Tier) |
|---|---|
| Monthly requests | 200 żądań |
| Email templates | 2 |
| Requests size | Up to 50Kb |
| Zabezpieczenia | Obsługa Allowlist i reCAPTCHA |

Kiedy wybrać własny backend zamiast EmailJS?
Mimo wygody, rozważ własny serwer, jeśli:
Przesyłasz dane wrażliwe (np. hasła lub dane medyczne).
Obsługujesz duży ruch, gdzie limity darmowe są niewystarczające.
Wymagasz logiki po stronie serwera (np. wysyłka e-maila uzależniona od walidacji w Twojej bazie danych).
Podsumowanie
EmailJS to doskonały kompromis między funkcjonalnością a szybkością wdrożenia. Świetnie sprawdza się w landing pages i prostych aplikacjach typu SPA. Pamiętaj o konfiguracji Allowlist i reCAPTCHA, aby cieszyć się wygodną wysyłką e-maili bez narażania swojej skrzynki na nadużycia.
Jeśli szukasz innych gotowych API do swoich projektów, sprawdź RapidAPI Hub – największą platformę z tysiącami gotowych rozwiązań.


