Obieg poczty e-mail składa się z kroku wysyłania i kroku skrzynki pocztowej. SMTP obsługuje pierwszy; IMAP obsługuje drugi.
Co robi SMTP?
SMTP wysyła i przekazuje pocztę. Twoja aplikacja lub klient pocztowy otwiera połączenie z serwerem SMTP, przesyła nadawcę, odbiorców i wiadomość, a po każdym poleceniu otrzymuje odpowiedź. Węzeł przekazywania może następnie działać jako klient SMTP i przekazać wiadomość do kolejnego serwera.
Protokół nie decyduje o tym, jak skrzynka jest wyświetlana ani które wiadomości użytkownik przeczytał. Jego zadaniem jest transmisja i przekazanie odpowiedzialności między serwerami.
Co robi IMAP?
IMAP pobiera wiadomości ze skrzynki pocztowej i synchronizuje jej stan. Telefon i laptop mogą wyświetlać te same foldery, flagi i stan odczytu, ponieważ oba pracują na kopii serwerowej.
IMAP nie wysyła nowej wiadomości do doręczenia. Klient może użyć SMTP do wysłania odpowiedzi, a potem IMAP do odczytania wątku w skrzynce pocztowej.
Jak wypadają SMTP i IMAP w porównaniu?
| Pytanie | SMTP | IMAP |
|---|---|---|
| Główne zadanie | Wysyłanie i przekazywanie poczty | Pobieranie i synchronizacja danych skrzynki pocztowej |
| Kierunek | Wychodzący do serwera pocztowego lub węzła przekazywania | Między serwerem skrzynki pocztowej a klientem |
| Stan serwera | Serwer może kolejkować wiadomość do następnego przekazania; SMTP nie definiuje skrzynki użytkownika | Serwer przechowuje kopię skrzynki, foldery i stan wiadomości |
| Typowy klient | Aplikacja wysyłająca lub klient pocztowy | Klient pocztowy czytający skrzynkę odbiorczą |
| Popularne porty | 587 do wysyłania, 465 do niejawnego TLS, 25 do przekazywania między serwerami | 143 dla zwykłego połączenia lub STARTTLS, 993 dla niejawnego TLS |
| Użycie w aplikacji | Wysyłanie potwierdzeń, alertów i innych wiadomości | Odczyt lub przetwarzanie istniejącej skrzynki pocztowej |
Różnica w stanie serwera przesądza o wyborze protokołu. SMTP może kolejkować wiadomość podczas doręczania, ale nie jest magazynem skrzynki pocztowej. IMAP jest zbudowany wokół skrzynki po stronie serwera, do której klienci wracają i którą synchronizują.
Jak rozmowa SMTP może zdiagnozować awarię?
Przechwyć polecenie i odpowiedź, która po nim następuje. SMTP to rozmowa krok po kroku: klient wysyła EHLO, MAIL FROM, RCPT TO i DATA, a serwer odpowiada na każdy etap. Polecenie, które zakończyło się błędem, zawęża problem do nawiązania połączenia, akceptacji nadawcy, akceptacji odbiorcy lub danych wiadomości.
Na przykład ta krótka wymiana dociera do treści wiadomości:
S: 220 mail.example ESMTP ready
C: EHLO app.example
S: 250-mail.example
C: MAIL FROM:<sender@example>
S: 250 2.1.0 OK
C: RCPT TO:<recipient@example>
S: 550 5.1.1 user unknown
550 przyszedł po RCPT TO, więc serwer odrzucił adres odbiorcy. To nie dowodzi, że połączenie sieciowe lub tożsamość nadawcy zawiodły. Odpowiedź 4xx na tym samym etapie wymagałaby polityki ponownych prób zamiast natychmiastowego trwałego błędu.
RFC 5321 definiuje format odpowiedzi i czyni kod liczbowy częścią odczytywaną maszynowo:
An SMTP reply consists of a three digit number (transmitted as three numeric characters) followed by some text unless specified otherwise in this document. The number is for use by automata to determine what state to enter next; the text is for the human user.
Użyj pierwszej cyfry jako pierwszego kryterium diagnostycznego:
| Klasa kodu | Znaczenie | Następny krok |
|---|---|---|
2xx | Polecenie wykonane | Kontynuuj transakcję |
3xx | Serwer przyjął polecenie i potrzebuje dalszych danych | Wyślij następną część, np. treść wiadomości po DATA |
4xx | Błąd tymczasowy | Zachowaj odpowiedzialność za wiadomość i spróbuj ponownie, gdy warunki serwera mogły się poprawić |
5xx | Błąd trwały dla tego żądania | Popraw adres, dane uwierzytelniające lub wiadomość przed ponowną próbą |
Odczytuj polecenie i kod razem. 535 po uwierzytelnieniu wskazuje na dane uwierzytelniające lub politykę uwierzytelniania. 552 po DATA wskazuje na limit rozmiaru. 421 podczas obsługi połączenia wskazuje na tymczasowy limit serwera lub połączeń.
Którego protokołu potrzebuje moja aplikacja?
Użyj SMTP, gdy aplikacja wysyła pocztę. Użyj IMAP, gdy odczytuje i synchronizuje istniejącą skrzynkę pocztową. Aplikacja wymagająca przetwarzania poczty przychodzącej może też użyć przychodzącego API e-mail, który dostarcza przetworzone wiadomości bez konieczności odpytywania skrzynki.
Do poczty wychodzącej wybierz między przekazywaniem SMTP a HTTP e-mail API. SMTP pasuje do bibliotek i systemów, które już obsługują ten protokół. HTTP API pasuje do środowisk, w których otwieranie i zarządzanie połączeniami SMTP jest niewygodne.
Jak Bird pomaga w wysyłaniu SMTP?
Aby wysyłać przez Bird, ustaw host przekazywania dla regionu swojego klucza, wybierz port 465, 587 lub 2525 i uwierzytelnij się nazwą użytkownika bird oraz kluczem API. Przewodnik po przekazywaniu SMTP podaje limity połączeń i obsługę kodów odpowiedzi przy nieudanym przekazaniu.
Czy mogę użyć IMAP do wysyłania e-maili?
Nie. IMAP pobiera i synchronizuje dane skrzynki pocztowej. Wysyłanie wymaga SMTP lub HTTP e-mail API.
Jaka jest różnica między IMAP a POP3?
Oba pobierają pocztę, ale IMAP przechowuje skrzynkę na serwerze i synchronizuje stan między klientami. POP3 tradycyjnie pobiera wiadomości na jednego klienta, więc nie zapewnia tego samego współdzielonego stanu skrzynki.
Którego portu SMTP powinienem użyć?
Użyj 587 do uwierzytelnionego wysyłania ze STARTTLS lub 465 do niejawnie szyfrowanego połączenia, gdy Twój klient tego oczekuje. Port 25 służy do przekazywania między serwerami i często jest blokowany dla bezpośredniego użycia przez klienta. Którego portu SMTP powinienem użyć? porównuje porty i ich role.
W skrócie
SMTP wysyła i przekazuje pocztę.
Przenosi wiadomość z klienta lub aplikacji do następnego serwera pocztowego, a potem przez kolejne węzły przekazywania do odbiorcy.
IMAP pobiera i synchronizuje skrzynkę pocztową.
Pozwala klientom czytać wiadomości i utrzymywać foldery, flagi oraz stan odczytu zsynchronizowane z serwerem.
Kody odpowiedzi mówią, co zrobić dalej.
Kod 2xx oznacza wykonane polecenie, kod 4xx to błąd tymczasowy, a kod 5xx wymaga korekty przed ponowną próbą.
Przewodnik po przekazywaniu SMTP od Bird obejmuje konfigurację wysyłania.
Znajdziesz w nim host, porty, przebieg uwierzytelniania i szczegóły rozwiązywania problemów specyficzne dla SMTP.
