Sähköpostin RFC-protokollatuki - Täydellinen standardien ja spesifikaatioiden opas
Tietoja tästä asiakirjasta
Tämä asiakirja kuvaa Forward Emailin RFC (Request for Comments) -protokollatukea. Koska Forward Email käyttää taustalla WildDuckia IMAP/POP3-toiminnallisuuteen, tässä dokumentoidut protokollatuki ja rajoitukset heijastavat WildDuckin toteutusta.
Important
Forward Email käyttää viestien tallennukseen SQLitea MongoDB:n sijaan (jota WildDuck alun perin käytti). Tämä vaikuttaa alla dokumentoituihin toteutuksen yksityiskohtiin.
Lähdekoodi: https://github.com/forwardemail/forwardemail.net
Arkkitehtuurin yleiskuva
Sähköpostipalveluiden vertailu - Protokollatuki & RFC-standardien noudattaminen
Important
Suojaus hiekkalaatikossa ja kvanttiturvallinen salaus: Forward Email on ainoa sähköpostipalvelu, joka tallentaa yksilöllisesti salatut SQLite-postilaatikot käyttäen salasanaasi (joka on vain sinulla). Jokainen postilaatikko on salattu sqleetillä (ChaCha20-Poly1305), itsenäinen, hiekkalaatikkomainen ja siirrettävä. Jos unohdat salasanasi, menetät postilaatikkosi – edes Forward Email ei voi palauttaa sitä. Katso lisätietoja Quantum-Safe Encrypted Email -sivulta.
Vertaa sähköpostiprotokollien tukea ja RFC-standardien toteutusta suurimpien sähköpostipalveluntarjoajien kesken:
| Ominaisuus | Forward Email | Postfix/Dovecot | Gmail | iCloud Mail | Outlook.com | Fastmail | Yahoo/AOL (Verizon) | ProtonMail | Tutanota |
|---|---|---|---|---|---|---|---|---|---|
| Oman domainin hinta | Ilmainen | Ilmainen | $7.20/kk | $0.99/kk | $7.20/kk | $5/kk | $3.19/kk | $4.99/kk | $3.27/kk |
| IMAP4rev1 (RFC 3501) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ⚠️ Sillan kautta | ❌ Ei tuettu |
| IMAP4rev2 (RFC 9051) | ⚠️ Osittain | ⚠️ Osittain | ⚠️ 31 % | ⚠️ 92 % | ⚠️ 46 % | ⚠️ 69 % | ⚠️ 85 % | ⚠️ Sillan kautta | ❌ Ei tuettu |
| POP3 (RFC 1939) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ⚠️ Sillan kautta | ❌ Ei tuettu |
| SMTP (RFC 5321) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ⚠️ Sillan kautta | ❌ Ei tuettu |
| JMAP (RFC 8620) | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu |
| DKIM (RFC 6376) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| SPF (RFC 7208) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| DMARC (RFC 7489) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| ARC (RFC 8617) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu |
| MTA-STS (RFC 8461) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| DANE (RFC 7671) | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu |
| DSN (RFC 3461) | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu | ⚠️ Tuntematon | ❌ Ei tuettu | ⚠️ Sillan kautta | ❌ Ei tuettu |
| REQUIRETLS (RFC 8689) | ✅ Tuettu | ✅ Tuettu | ⚠️ Tuntematon | ⚠️ Tuntematon | ⚠️ Tuntematon | ⚠️ Tuntematon | ⚠️ Tuntematon | ⚠️ Sillan kautta | ❌ Ei tuettu |
| ManageSieve (RFC 5804) | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu |
| OpenPGP (RFC 9580) | ✅ Tuettu | ⚠️ Lisäosien kautta | ⚠️ Kolmannen osapuolen | ⚠️ Kolmannen osapuolen | ⚠️ Kolmannen osapuolen | ⚠️ Kolmannen osapuolen | ⚠️ Kolmannen osapuolen | ✅ Natiivisti | ❌ Ei tuettu |
| S/MIME (RFC 8551) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ⚠️ Osittain | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu |
| CalDAV (RFC 4791) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Sillan kautta | ❌ Ei tuettu |
| CardDAV (RFC 6352) | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Sillan kautta | ❌ Ei tuettu |
| Tehtävät (VTODO) | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu |
| Sieve (RFC 5228) | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ❌ Ei tuettu |
| Catch-All | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu | ❌ Ei tuettu | ✅ Tuettu |
| Rajoittamaton aliasmäärä | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu |
| Kaksivaiheinen tunnistus | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| Push-ilmoitukset | ✅ Tuettu | ⚠️ Lisäosien kautta | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu |
| Kalenteri/Yhteystiedot työpöydällä | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu |
| Edistynyt haku | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu | ✅ Tuettu |
| API/integroinnit | ✅ 39 päätepistettä | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ✅ Tuettu | ❌ Ei tuettu | ✅ Tuettu | ❌ Ei tuettu |
Protokollatuki Visualisointi
Ydinsähköpostiprotokollat
Sähköpostiprotokollan kulku
IMAP4-sähköpostiprotokolla ja laajennukset
Note
Forward Email tukee IMAP4rev1:stä (RFC 3501) ja osittaista tukea IMAP4rev2:n (RFC 9051) ominaisuuksille.
Forward Email tarjoaa vankan IMAP4-tuen WildDuck-sähköpostipalvelimen toteutuksen kautta. Palvelin toteuttaa IMAP4rev1:n (RFC 3501) ja osittaisen tuen IMAP4rev2:n (RFC 9051) laajennuksille.
Forward Emailin IMAP-toiminnallisuus toteutetaan WildDuck -riippuvuuden avulla. Seuraavat sähköpostin RFC:t ovat tuettuja:
| RFC | Otsikko | Toteutuksen Huomautukset |
|---|---|---|
| RFC 3501 | Internet Message Access Protocol (IMAP) - Versio 4rev1 | Täysi tuki tarkoituksellisin eroavaisuuksin (katso alla) |
| RFC 2177 | IMAP4 IDLE -komento | Push-tyyppiset ilmoitukset |
| RFC 2342 | IMAP4 Nimiavaruus | Postilaatikon nimiavaruustuki |
| RFC 2087 | IMAP4 QUOTA -laajennus | Tallennustilan kiintiön hallinta |
| RFC 2971 | IMAP4 ID -laajennus | Asiakas/palvelin tunnistus |
| RFC 5161 | IMAP4 ENABLE -laajennus | IMAP-laajennusten aktivointi |
| RFC 4959 | IMAP-laajennus SASL:n alkuperäiselle asiakasvastaukselle (SASL-IR) | Alkuperäinen asiakasvastaus |
| RFC 3691 | IMAP4 UNSELECT -komento | Sulje postilaatikko ilman EXPUNGE-komentoa |
| RFC 4315 | IMAP UIDPLUS -laajennus | Parannetut UID-komennot |
| RFC 7162 | IMAP-laajennukset: Nopeat lipun muutosten uudelleensynkronoinnit (CONDSTORE) | Ehdollinen STORE |
| RFC 6154 | IMAP LIST -laajennus erityiskäyttöön tarkoitetuille postilaatikoille | Erityispostilaatikon attribuutit |
| RFC 6851 | IMAP MOVE -laajennus | Atominen MOVE-komento |
| RFC 6855 | IMAP-tuki UTF-8:lle | UTF-8-tuki |
| RFC 3348 | IMAP4 Lapsipostilaatikon laajennus | Lapsipostilaatikon tiedot |
| RFC 7889 | IMAP4-laajennus suurimman lähetyskoon mainostamiseen (APPENDLIMIT) | Suurin lähetyskoko |
| Tuetut IMAP-laajennukset: |
| Laajennus | RFC | Tila | Kuvaus |
|---|---|---|---|
| IDLE | RFC 2177 | ✅ Tuettu | Push-tyyppiset ilmoitukset |
| NAMESPACE | RFC 2342 | ✅ Tuettu | Postilaatikon nimialueen tuki |
| QUOTA | RFC 2087 | ✅ Tuettu | Tallennustilan kiintiöhallinta |
| ID | RFC 2971 | ✅ Tuettu | Asiakas/palvelin tunnistus |
| ENABLE | RFC 5161 | ✅ Tuettu | IMAP-laajennusten aktivointi |
| SASL-IR | RFC 4959 | ✅ Tuettu | Alkuperäinen asiakasvastaus |
| UNSELECT | RFC 3691 | ✅ Tuettu | Postilaatikon sulkeminen ilman EXPUNGEa |
| UIDPLUS | RFC 4315 | ✅ Tuettu | Parannetut UID-komennot |
| CONDSTORE | RFC 7162 | ✅ Tuettu | Ehdollinen STORE |
| SPECIAL-USE | RFC 6154 | ✅ Tuettu | Erityiset postilaatikkoattribuutit |
| MOVE | RFC 6851 | ✅ Tuettu | Atominen MOVE-komento |
| UTF8=ACCEPT | RFC 6855 | ✅ Tuettu | UTF-8-tuki |
| CHILDREN | RFC 3348 | ✅ Tuettu | Alipostilaatikkotiedot |
| APPENDLIMIT | RFC 7889 | ✅ Tuettu | Maksimi latauskoko |
| XLIST | Ei-standardi | ✅ Tuettu | Gmail-yhteensopiva kansiolistaus |
| XAPPLEPUSHSERVICE | Ei-standardi | ✅ Tuettu | Apple Push Notification Service |
IMAP-protokollan erot RFC-määrittelyihin nähden
Warning
Seuraavat erot RFC-määrittelyihin voivat vaikuttaa asiakasohjelmien yhteensopivuuteen.
Forward Email poikkeaa tarkoituksellisesti joistakin IMAP RFC -määrittelyistä. Nämä erot on peritty WildDuckista ja ne on dokumentoitu alla:
- Ei \Recent-lippua:
\Recent-lippua ei toteuteta. Kaikki viestit palautetaan ilman tätä lippua. - RENAME ei vaikuta alikansioihin: Kansion uudelleennimeämisen yhteydessä alikansioita ei uudelleennimetä automaattisesti. Kansiorakenne on tietokannassa tasainen.
- INBOXia ei voi nimetä uudelleen: RFC 3501 sallii INBOXin uudelleennimeämisen, mutta Forward Email kieltää sen nimenomaan. Katso WildDuckin lähdekoodi.
- Ei pyytämättömiä FLAGS-vastauksia: Lipputietojen muuttuessa asiakasohjelmalle ei lähetetä pyytämättömiä FLAGS-vastauksia.
- STORE palauttaa NO poistetuille viesteille: Lipputietojen muuttaminen poistetuille viesteille palauttaa NO:n, eikä ohita muutosta hiljaisesti.
- CHARSET ohitetaan SEARCH-komennossa: SEARCH-komentojen
CHARSET-argumentti ohitetaan. Kaikki haut käyttävät UTF-8:aa. - MODSEQ-metatiedot ohitetaan: STORE-komentojen
MODSEQ-metatiedot ohitetaan. - SEARCH TEXT ja SEARCH BODY: Forward Email käyttää SQLite FTS5 (täysitekstihaku) MongoDB:n
$text-haun sijaan. Tämä tarjoaa:- Tuetun
NOT-operaattorin (MongoDB ei tue tätä) - Järjestetyt hakutulokset
- Alle 100 ms hakunopeuden suurissa postilaatikoissa
- Tuetun
- Autoexpunge-käyttäytyminen:
\Deleted-lipulla merkityt viestit poistetaan automaattisesti postilaatikon sulkemisen yhteydessä. - Viestin eheys: Jotkin viestimuutokset eivät välttämättä säilytä alkuperäisen viestin tarkkaa rakennetta.
IMAP4rev2 osittainen tuki:
Forward Email toteuttaa IMAP4rev1:n (RFC 3501) ja osittaisen IMAP4rev2:n (RFC 9051) tuen. Seuraavat IMAP4rev2-ominaisuudet eivät ole vielä tuettuja:
- LIST-STATUS - Yhdistetyt LIST- ja STATUS-komennot
- LITERAL- - Synkronisoimattomat literalit (miinusvariantti)
- OBJECTID - Uniikit objektitunnisteet
- SAVEDATE - Tallennuspäivämääräattribuutti
- REPLACE - Atominen viestin korvaaminen
- UNAUTHENTICATE - Autentikoinnin lopetus ilman yhteyden sulkemista
Rentoutettu runkorakenteen käsittely:
Forward Email käyttää "rentoutettua runkorakenteen" käsittelyä virheellisille MIME-rakenteille, mikä voi poiketa tiukasta RFC-tulkinnasta. Tämä parantaa yhteensopivuutta todellisten sähköpostien kanssa, jotka eivät täysin noudata standardeja. METADATA-laajennus (RFC 5464):
IMAP METADATA -laajennusta ei tueta. Lisätietoja tästä laajennuksesta löytyy kohdasta RFC 5464. Keskustelua tämän ominaisuuden lisäämisestä löytyy WildDuck Issue #937.
IMAP-laajennukset, joita EI tueta
Seuraavia IMAP-laajennuksia IANA IMAP Capabilities Registry -rekisteristä EI tueta:
| RFC | Otsikko | Syy |
|---|---|---|
| RFC 2086 | IMAP4 ACL -laajennus | Jaettuja kansioita ei ole toteutettu. Katso WildDuck Issue #427 |
| RFC 5256 | IMAP SORT ja THREAD -laajennukset | Ketjutus toteutettu sisäisesti, mutta ei RFC 5256 -protokollan kautta. Katso WildDuck Issue #12 |
| RFC 5162 | IMAP4-laajennukset nopeaan postilaatikon uudelleensynkronointiin (QRESYNC) | Ei toteutettu |
| RFC 5464 | IMAP METADATA -laajennus | Metadata-toiminnot ohitettu. Katso WildDuck-dokumentaatio |
| RFC 5258 | IMAP4 LIST -komentolaajennukset | Ei toteutettu |
| RFC 5267 | Kontekstit IMAP4:lle | Ei toteutettu |
| RFC 5465 | IMAP NOTIFY -laajennus | Ei toteutettu |
| RFC 5466 | IMAP4 FILTERS -laajennus | Ei toteutettu |
| RFC 6203 | IMAP4-laajennus epätarkkaan hakuun | Ei toteutettu |
| RFC 6785 | IMAP4:n toteutussuositukset | Suosituksia ei ole täysin noudatettu |
| RFC 7162 | IMAP-laajennukset: Nopeat lipun muutosten uudelleensynkronoinnit (CONDSTORE) ja nopea postilaatikon uudelleensynkronointi (QRESYNC) | Ei toteutettu |
| RFC 8437 | IMAP UNAUTHENTICATE -laajennus yhteyden uudelleenkäyttöön | Ei toteutettu |
| RFC 8438 | IMAP-laajennus STATUS=SIZE -ominaisuudelle | Ei toteutettu |
| RFC 8457 | IMAP "$Important" -avainsana ja "\Important" erikoiskäyttöattribuutti | Ei toteutettu |
| RFC 8474 | IMAP-laajennus objektitunnisteille | Ei toteutettu |
| RFC 9051 | Internet Message Access Protocol (IMAP) - Versio 4rev2 | Forward Email toteuttaa IMAP4rev1:n (RFC 3501) |
POP3-sähköpostiprotokolla ja laajennukset
Note
Forward Email tukee POP3:ta (RFC 1939) standardilaajennuksineen sähköpostin hakemiseen.
Forward Emailin POP3-toiminnallisuus toteutetaan WildDuck -riippuvuuden avulla. Seuraavat sähköpostin RFC:t ovat tuettuja:
| RFC | Otsikko | Toteutuksen huomautukset |
|---|---|---|
| RFC 1939 | Post Office Protocol - Versio 3 (POP3) | Täysi tuki tarkoituksellisine eroavaisuuksineen (katso alla) |
| RFC 2595 | TLS:n käyttö IMAP:n, POP3:n ja ACAP:n kanssa | STARTTLS-tuki |
| RFC 2449 | POP3-laajennusmekanismi | CAPA-komennon tuki |
Forward Email tarjoaa POP3-tuen asiakkaille, jotka suosivat tätä yksinkertaisempaa protokollaa IMAPin sijaan. POP3 on ihanteellinen käyttäjille, jotka haluavat ladata sähköpostit yhdelle laitteelle ja poistaa ne palvelimelta.
Tuetut POP3-laajennukset:
| Laajennus | RFC | Tila | Kuvaus |
|---|---|---|---|
| TOP | RFC 1939 | ✅ Tuettu | Viestin otsikoiden hakeminen |
| USER | RFC 1939 | ✅ Tuettu | Käyttäjätunnuksen todennus |
| UIDL | RFC 1939 | ✅ Tuettu | Yksilölliset viestitunnisteet |
| EXPIRE | RFC 2449 | ✅ Tuettu | Viestien vanhenemiskäytäntö |
POP3-protokollan erot RFC-määrittelyihin nähden
Warning
POP3:lla on luontaisia rajoituksia verrattuna IMAPiin.
Important
Kriittinen ero: Forward Email vs WildDuck POP3 DELE -käyttäytyminen
Forward Email toteuttaa RFC-yhteensopivan pysyvän poiston POP3:n DELE-komennoille, toisin kuin WildDuck, joka siirtää viestit Roskakoriin.
Forward Emailin käyttäytyminen (lähdekoodi):
DELE→QUITpoistaa viestit pysyvästi- Noudattaa tarkasti RFC 1939 -määrittelyä
- Vastaa Dovecotin (oletus), Postfixin ja muiden standardienmukaisten palvelimien käyttäytymistä
WildDuckin käyttäytyminen (keskustelu):
DELE→QUITsiirtää viestit Roskakoriin (Gmail-tyyppinen)- Tarkoituksellinen suunnitteluratkaisu käyttäjien turvallisuuden vuoksi
- Ei ole RFC-yhteensopiva, mutta estää vahingossa tapahtuvan tietojen menetyksen
Miksi Forward Email eroaa:
- RFC-yhteensopivuus: Noudattaa RFC 1939 -määrittelyä
- Käyttäjän odotukset: Lataa-ja-poista -työnkulku edellyttää pysyvää poistoa
- Tallennuksen hallinta: Levytilan asianmukainen vapauttaminen
- Yhteensopivuus: Yhtenäinen muiden RFC-yhteensopivien palvelimien kanssa
Note
POP3-viestiluettelo: Forward Email listaa KAIKKI viestit INBOX-kansiosta ilman rajoitusta. Tämä eroaa WildDuckista, joka rajoittaa oletuksena 250 viestiin. Katso lähdekoodi.
Yhden laitteen käyttö:
POP3 on suunniteltu yhden laitteen käyttöön. Viestit ladataan yleensä ja poistetaan palvelimelta, joten se ei sovellu monilaitteiseen synkronointiin.
Ei kansiotukea:
POP3 pääsee käsiksi vain INBOX-kansioon. Muut kansiot (Lähetetyt, Luonnokset, Roskakori jne.) eivät ole POP3:n kautta saatavilla.
Rajoitettu viestien hallinta:
POP3 tarjoaa perustoiminnot viestien hakemiseen ja poistamiseen. Edistyneet ominaisuudet kuten liputus, siirto tai viestien haku eivät ole käytettävissä.
POP3-laajennukset, joita EI tueta
Seuraavia POP3-laajennuksia IANA POP3 Extension Mechanism Registry -rekisteristä EI tueta:
| RFC | Otsikko | Syy |
|---|---|---|
| RFC 6856 | Post Office Protocol Version 3 (POP3) Support for UTF-8 | Ei toteutettu WildDuck POP3 -palvelimessa |
| RFC 2595 | STLS-komento | Vain STARTTLS tuettu, ei STLS |
| RFC 3206 | The SYS and AUTH POP Response Codes | Ei toteutettu |
SMTP Email Protocol and Extensions
Note
Forward Email tukee SMTP:tä (RFC 5321) nykyaikaisilla laajennuksilla turvalliseen ja luotettavaan sähköpostin toimitukseen.
Forward Emailin SMTP-toiminnallisuus toteutetaan useilla komponenteilla: smtp-server (nodemailer), zone-mta ja mukautetuilla toteutuksilla. Seuraavat sähköpostin RFC:t ovat tuettuja:
| RFC | Otsikko | Toteutustiedot |
|---|---|---|
| RFC 5321 | Simple Mail Transfer Protocol (SMTP) | Täysi tuki |
| RFC 3207 | SMTP Service Extension for Secure SMTP over Transport Layer Security (STARTTLS) | TLS/SSL-tuki |
| RFC 4954 | SMTP Service Extension for Authentication (AUTH) | PLAIN, LOGIN, CRAM-MD5, XOAUTH2 |
| RFC 6531 | SMTP Extension for Internationalized Email (SMTPUTF8) | Natiivi unicode-sähköpostiosoitetuki |
| RFC 3461 | SMTP Service Extension for Delivery Status Notifications (DSN) | Täysi DSN-tuki |
| RFC 3463 | Enhanced Mail System Status Codes | Parannetut tilakoodit vastauksissa |
| RFC 1870 | SMTP Service Extension for Message Size Declaration (SIZE) | Maksimikokoilmoitus viestille |
| RFC 2920 | SMTP Service Extension for Command Pipelining (PIPELINING) | Komentojen putkittaminen tuettu |
| RFC 1652 | SMTP Service Extension for 8bit-MIMEtransport (8BITMIME) | 8-bittinen MIME-tuki |
| RFC 6152 | SMTP Service Extension for 8-bit MIME Transport | 8-bittinen MIME-tuki |
| RFC 2034 | SMTP Service Extension for Returning Enhanced Error Codes (ENHANCEDSTATUSCODES) | Parannetut tilakoodit |
Forward Email toteuttaa täysimittaisen SMTP-palvelimen, joka tukee nykyaikaisia laajennuksia, jotka parantavat turvallisuutta, luotettavuutta ja toiminnallisuutta.
Tuetut SMTP-laajennukset:
| Laajennus | RFC | Tila | Kuvaus |
|---|---|---|---|
| PIPELINING | RFC 2920 | ✅ Tuettu | Komentojen putkittaminen |
| SIZE | RFC 1870 | ✅ Tuettu | Viestin koon ilmoitus (52 Mt raja) |
| ETRN | RFC 1985 | ✅ Tuettu | Etäjonon käsittely |
| STARTTLS | RFC 3207 | ✅ Tuettu | Päivitys TLS:ään |
| ENHANCEDSTATUSCODES | RFC 2034 | ✅ Tuettu | Parannetut tilakoodit |
| 8BITMIME | RFC 6152 | ✅ Tuettu | 8-bittinen MIME-siirto |
| DSN | RFC 3461 | ✅ Tuettu | Toimitusilmoitukset |
| CHUNKING | RFC 3030 | ✅ Tuettu | Viestin siirto paloissa |
| SMTPUTF8 | RFC 6531 | ⚠️ Osittain | UTF-8-sähköpostiosoitteet (osittain) |
| REQUIRETLS | RFC 8689 | ✅ Tuettu | TLS-vaatimus toimitukselle |
Toimituksen tilailmoitukset (DSN)
Tip
DSN tarjoaa yksityiskohtaista tietoa lähetettyjen sähköpostien toimitustilasta.
Forward Email tukee täysin DSN:ää (RFC 3461), jonka avulla lähettäjät voivat pyytää toimitustilailmoituksia. Tämä ominaisuus tarjoaa:
- Onnistumisilmoitukset viestien toimituksesta
- Epäonnistumisilmoitukset yksityiskohtaisine virhetietoineen
- Viivästysilmoitukset kun toimitus on väliaikaisesti viivästynyt
DSN on erityisen hyödyllinen:
- Vahvistamaan tärkeiden viestien toimitus
- Toimitusongelmien vianmäärityksessä
- Automaattisissa sähköpostinkäsittelyjärjestelmissä
- Säädösten ja auditointivaatimusten noudattamisessa
REQUIRETLS-tuki
Important
Forward Email on harvoja palveluntarjoajia, joka nimenomaisesti mainostaa ja pakottaa REQUIRETLS:n käyttöä.
Forward Email tukee REQUIRETLS:ää (RFC 8689), joka varmistaa, että sähköpostiviestit toimitetaan vain TLS-salatuissa yhteyksissä. Tämä tarjoaa:
- Päästä päähän -salauksen koko toimitusreitille
- Käyttäjälle näkyvän pakotuksen sähköpostin kirjoitusikkunan valintaruudun kautta
- Salaamattomien toimitusyritysten hylkäämisen
- Parannetun tietoturvan arkaluonteisille viesteille
Tukemattomat SMTP-laajennukset
Seuraavat SMTP-laajennukset IANA SMTP Service Extensions Registry -rekisteristä EIVÄT ole tuettuja:
| RFC | Otsikko | Syy |
|---|---|---|
| RFC 4865 | SMTP Submission Service Extension for Future Message Release (FUTURERELEASE) | Ei toteutettu |
| RFC 6710 | SMTP Extension for Message Transfer Priorities (MT-PRIORITY) | Ei toteutettu |
| RFC 7293 | The Require-Recipient-Valid-Since Header Field and SMTP Service Extension | Ei toteutettu |
| RFC 7372 | Email Auth Status Codes | Ei täysin toteutettu |
| RFC 4468 | Message Submission BURL Extension | Ei toteutettu |
| RFC 3030 | SMTP Service Extensions for Transmission of Large and Binary MIME Messages (CHUNKING, BINARYMIME) | Ei toteutettu |
| RFC 2852 | Deliver By SMTP Service Extension | Ei toteutettu |
JMAP-sähköpostiprotokolla
Caution
JMAP ei ole tällä hetkellä tuettu Forward Emailissa.
| RFC | Otsikko | Tila | Syy |
|---|---|---|---|
| RFC 8620 | The JSON Meta Application Protocol (JMAP) | ❌ Ei tuettu | Forward Email käyttää sen sijaan IMAP/POP3/SMTP:ää ja kattavaa REST-rajapintaa |
JMAP (JSON Meta Application Protocol) on moderni sähköpostiprotokolla, joka on suunniteltu korvaamaan IMAP.
Miksi JMAP ei ole tuettu:
"JMAP on hirviö, jota ei olisi pitänyt keksiä. Se yrittää muuntaa TCP/IMAP:n (joka on jo nykystandardein huono protokolla) HTTP/JSON:ksi, käyttämällä vain eri siirtotapaa mutta säilyttäen hengen." — Andris Reinman, HN-keskustelu "JMAP on yli 10 vuotta vanha, eikä sitä ole käytännössä otettu lainkaan käyttöön" – Andris Reinman, GitHub-keskustelu
Katso myös lisäkommentteja osoitteessa https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=jmap andris&sort=byDate&type=comment.
Forward Email keskittyy tällä hetkellä erinomaisen IMAP-, POP3- ja SMTP-tuen tarjoamiseen sekä kattavaan REST-API:in sähköpostinhallintaa varten. JMAP-tuki voidaan harkita tulevaisuudessa käyttäjäkysynnän ja ekosysteemin käyttöönoton perusteella.
Vaihtoehto: Forward Email tarjoaa Täydellisen REST-API:n 39 päätepisteellä, joka tarjoaa samankaltaisen toiminnallisuuden kuin JMAP ohjelmalliseen sähköpostin käyttöön.
Sähköpostin turvallisuus
Sähköpostin turvallisuusarkkitehtuuri
Sähköpostiviestien todennusprotokollat
Note
Forward Email toteuttaa kaikki tärkeimmät sähköpostin todennusprotokollat estääkseen väärentämisen ja varmistaakseen viestin eheyden.
Forward Email käyttää sähköpostin todennukseen mailauth -kirjastoa. Seuraavat RFC:t ovat tuettuja:
| RFC | Otsikko | Toteutusmuistiinpanot |
|---|---|---|
| RFC 6376 | DomainKeys Identified Mail (DKIM) -allekirjoitukset | Täysi DKIM-allekirjoitus ja -varmennus |
| RFC 8463 | Uusi kryptografinen allekirjoitusmenetelmä DKIM:lle (Ed25519-SHA256) | Tukee sekä RSA-SHA256- että Ed25519-SHA256-allekirjoitusalgoritmeja |
| RFC 7208 | Sender Policy Framework (SPF) | SPF-tietueen validointi |
| RFC 7489 | Domain-based Message Authentication, Reporting, and Conformance (DMARC) | DMARC-käytännön noudattaminen |
| RFC 8617 | Authenticated Received Chain (ARC) | ARC-sinetöinti ja validointi |
Sähköpostin todennusprotokollat varmistavat, että viestit ovat aidosti ilmoitetulta lähettäjältä eivätkä ole muuttuneet siirron aikana.
Todennusprotokollien tuki
| Protokolla | RFC | Tila | Kuvaus |
|---|---|---|---|
| DKIM | RFC 6376 | ✅ Tuettu | DomainKeys Identified Mail - Kryptografiset allekirjoitukset |
| SPF | RFC 7208 | ✅ Tuettu | Sender Policy Framework - IP-osoitteen valtuutus |
| DMARC | RFC 7489 | ✅ Tuettu | Domain-based Message Authentication - Käytännön noudattaminen |
| ARC | RFC 8617 | ✅ Tuettu | Authenticated Received Chain - Todennuksen säilyttäminen edelleenlähetyksissä |
DKIM (DomainKeys Identified Mail)
DKIM lisää sähköpostin otsikoihin kryptografisen allekirjoituksen, jonka avulla vastaanottajat voivat varmistaa, että viestin on valtuuttanut verkkotunnuksen omistaja eikä sitä ole muokattu siirron aikana.
Forward Email käyttää mailauth -kirjastoa DKIM-allekirjoitukseen ja -tarkistukseen.
Keskeiset ominaisuudet:
- Automaattinen DKIM-allekirjoitus kaikille lähteville viesteille
- Tuki RSA- ja Ed25519-avaimille
- Useiden valitsimien tuki
- DKIM-tarkistus saapuville viesteille
SPF (Sender Policy Framework)
SPF antaa verkkotunnuksen omistajille mahdollisuuden määrittää, mitkä IP-osoitteet ovat valtuutettuja lähettämään sähköpostia heidän verkkotunnuksensa puolesta.
Keskeiset ominaisuudet:
- SPF-tietueen validointi saapuville viesteille
- Automaattinen SPF-tarkistus yksityiskohtaisilla tuloksilla
- Tuki include-, redirect- ja all-mekanismeille
- Määritettävät SPF-käytännöt verkkotunnuskohtaisesti
DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC rakentuu SPF:n ja DKIM:n päälle tarjoten käytäntöjen noudattamisen ja raportoinnin.
Keskeiset ominaisuudet:
- DMARC-käytäntöjen noudattaminen (none, quarantine, reject)
- Kohdistuksen tarkistus SPF:lle ja DKIM:lle
- DMARC-yhteenvetoraportointi
- Verkkotunnuskohtaiset DMARC-käytännöt
ARC (Authenticated Received Chain)
ARC säilyttää sähköpostin todennustulokset edelleenlähetyksen ja postituslistojen muokkausten yli.
Forward Email käyttää mailauth -kirjastoa ARC-tarkistukseen ja -sinettaukseen.
Keskeiset ominaisuudet:
- ARC-sinetöinti edelleenlähetetyille viesteille
- ARC-validointi saapuville viesteille
- Ketjun tarkistus useiden hyppyjen yli
- Säilyttää alkuperäiset todennustulokset
Authentication Flow
Email Transport Security Protocols
Important
Forward Email toteuttaa useita kerroksia siirtoturvaa suojatakseen sähköpostit siirron aikana.
Forward Email toteuttaa nykyaikaiset siirtoturvaprotokollat:
| RFC | Otsikko | Tila | Toteutustiedot |
|---|---|---|---|
| RFC 8461 | SMTP MTA Strict Transport Security (MTA-STS) | ✅ Tuettu | Laajasti käytössä IMAP-, SMTP- ja MX-palvelimilla. Katso create-mta-sts-cache.js ja get-transporter.js |
| RFC 8460 | SMTP TLS Reporting | ✅ Tuettu | Käytössä mailauth -kirjaston kautta |
| RFC 7671 | The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance | ✅ Tuettu | Täysi DANE-tarkistus lähtevissä SMTP-yhteyksissä. Katso mx-connect PR #22 |
| RFC 6698 | The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA | ✅ Tuettu | Täysi RFC 6698 -tuki: PKIX-TA, PKIX-EE, DANE-TA, DANE-EE käyttötyypit. Katso mx-connect PR #22 |
| RFC 8314 | Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access | ✅ Tuettu | TLS vaaditaan kaikissa yhteyksissä |
| RFC 8689 | SMTP Service Extension for Requiring TLS (REQUIRETLS) | ✅ Tuettu | Täysi tuki REQUIRETLS SMTP -laajennukselle ja "TLS-Required" -otsakkeelle |
| Kuljetusturvaprotokollat varmistavat, että sähköpostiviestit salataan ja todennetaan siirron aikana postipalvelimien välillä. |
Kuljetusturvan tuki
| Protokolla | RFC | Tila | Kuvaus |
|---|---|---|---|
| TLS | RFC 8314 | ✅ Tuettu | Transport Layer Security - Salatut yhteydet |
| MTA-STS | RFC 8461 | ✅ Tuettu | Mail Transfer Agent Strict Transport Security |
| DANE | RFC 7671 | ✅ Tuettu | DNS-pohjainen nimettyjen kohteiden todennus |
| REQUIRETLS | RFC 8689 | ✅ Tuettu | TLS:n vaatiminen koko toimitusreitille |
TLS (Transport Layer Security)
Forward Email pakottaa TLS-salauksen kaikille sähköpostiyhteyksille (SMTP, IMAP, POP3).
Keskeiset ominaisuudet:
- TLS 1.2 ja TLS 1.3 tuki
- Automaattinen sertifikaattien hallinta
- Perfect Forward Secrecy (PFS)
- Vain vahvat salausalgoritmit
MTA-STS (Mail Transfer Agent Strict Transport Security)
MTA-STS varmistaa, että sähköposti toimitetaan vain TLS-salattujen yhteyksien kautta julkaisemalla politiikan HTTPS:n kautta.
Forward Email toteuttaa MTA-STS:n käyttäen create-mta-sts-cache.js.
Keskeiset ominaisuudet:
- Automaattinen MTA-STS-politiikan julkaisu
- Politiikan välimuisti suorituskyvyn parantamiseksi
- Downgrade-hyökkäysten estäminen
- Sertifikaattien validoinnin pakottaminen
DANE (DNS-pohjainen nimettyjen kohteiden todennus)
Note
Forward Email tarjoaa nyt täyden DANE-tuen lähteville SMTP-yhteyksille.
DANE käyttää DNSSEC:iä TLS-sertifikaattitietojen julkaisemiseen DNS:ssä, jolloin postipalvelimet voivat varmistaa sertifikaatit ilman riippuvuutta sertifikaattiviranomaisista.
Keskeiset ominaisuudet:
- ✅ Täysi DANE-tarkistus lähteville SMTP-yhteyksille
- ✅ Täysi RFC 6698 -tuki: PKIX-TA, PKIX-EE, DANE-TA, DANE-EE käyttötyypit
- ✅ Sertifikaattien tarkistus TLSA-tietueita vastaan TLS-päivityksen aikana
- ✅ Samanaikainen TLSA-tietueiden ratkaisu useille MX-isännille
- ✅ Automaattinen natiivin
dns.resolveTlsa-tuen tunnistus (Node.js v22.15.0+, v23.9.0+) - ✅ Mukautetun resolverin tuki vanhemmille Node.js-versioille Tangerine avulla
- Vaatii DNSSEC-allekirjoitetut domainit
Tip
Toteutustiedot: DANE-tuki lisättiin mx-connect PR #22 kautta, joka tarjoaa kattavan DANE/TLSA-tuen lähteville SMTP-yhteyksille.
REQUIRETLS
Tip
Forward Email on yksi harvoista palveluntarjoajista, jolla on käyttäjille näkyvä REQUIRETLS-tuki.
REQUIRETLS varmistaa, että sähköpostiviestit toimitetaan vain TLS-salattujen yhteyksien kautta koko toimitusreitillä.
Keskeiset ominaisuudet:
- Käyttäjälle näkyvä valintaruutu sähköpostin kirjoittajassa
- Automaattinen salaamattoman toimituksen hylkäys
- End-to-end TLS:n pakottaminen
- Yksityiskohtaiset virheilmoitukset
Tip
Käyttäjälle näkyvä TLS-pakotus: Forward Email tarjoaa valintaruudun kohdassa Oma tili > Domainit > Asetukset TLS:n pakottamiseksi kaikille saapuville yhteyksille. Kun ominaisuus on käytössä, se hylkää kaikki TLS-salattuja yhteyksiä käyttämättömät saapuvat sähköpostit virhekoodilla 530, varmistaen että kaikki saapuva posti on salattu siirron aikana.
Kuljetusturvan kulku
Sähköpostiviestin salaus
Note
Forward Email tukee sekä OpenPGP:tä että S/MIMEä päästä päähän -salausta varten.
Forward Email tukee OpenPGP- ja S/MIME-salausta:
| RFC | Otsikko | Tila | Toteutusmuistiinpanot |
|---|---|---|---|
| RFC 9580 | OpenPGP (korvaa RFC 4880) | ✅ Tuettu | Integraatio OpenPGP.js v6+ kautta. Katso FAQ |
| RFC 8551 | Secure/Multipurpose Internet Mail Extensions (S/MIME) Versio 4.0 Viestimääritys | ✅ Tuettu | Sekä RSA- että ECC-algoritmit tuettu. Katso FAQ |
Viestin salausprotokollat suojaavat sähköpostin sisällön niin, että vain vastaanottaja voi lukea sen, vaikka viesti siepattaisiin siirron aikana.
Salaustuki
| Protokolla | RFC | Tila | Kuvaus |
|---|---|---|---|
| OpenPGP | RFC 9580 | ✅ Tuettu | Pretty Good Privacy - julkisen avaimen salaus |
| S/MIME | RFC 8551 | ✅ Tuettu | Secure/Multipurpose Internet Mail Extensions |
| WKD | Luonnos | ✅ Tuettu | Web Key Directory - Automaattinen avainten löytyminen |
OpenPGP (Pretty Good Privacy)
OpenPGP tarjoaa päästä päähän -salauksen julkisen avaimen kryptografian avulla. Forward Email tukee OpenPGP:tä Web Key Directory (WKD) -protokollan kautta.
Keskeiset ominaisuudet:
- Automaattinen avainten löytyminen WKD:n kautta
- PGP/MIME-tuki salatuille liitteille
- Avainten hallinta sähköpostiohjelman kautta
- Yhteensopiva GPG:n, Mailvelopen ja muiden OpenPGP-työkalujen kanssa
Käyttöohje:
- Luo PGP-avainpari sähköpostiohjelmassasi
- Lataa julkinen avain Forward Emailin WKD:hen
- Avaimesi löytyy automaattisesti muille käyttäjille
- Lähetä ja vastaanota salattuja sähköposteja vaivattomasti
S/MIME (Secure/Multipurpose Internet Mail Extensions)
S/MIME tarjoaa sähköpostin salauksen ja digitaaliset allekirjoitukset X.509-sertifikaattien avulla.
Keskeiset ominaisuudet:
- Sertifikaattipohjainen salaus
- Digitaaliset allekirjoitukset viestin todennukseen
- Natiivituki useimmissa sähköpostiohjelmissa
- Yritystason tietoturva
Käyttöohje:
- Hanki S/MIME-sertifikaatti sertifikaatin myöntäjältä
- Asenna sertifikaatti sähköpostiohjelmaasi
- Määritä ohjelma salaamaan/allekirjoittamaan viestit
- Vaihda sertifikaatit vastaanottajien kanssa
SQLite-postilaatikon salaus
Important
Forward Email tarjoaa lisäturvakerroksen salatuilla SQLite-postilaatikoilla.
Viestitason salauksen lisäksi Forward Email salaa koko postilaatikon käyttäen sqleet (ChaCha20-Poly1305).
Keskeiset ominaisuudet:
- Salasana-pohjainen salaus – Vain sinulla on salasana
- Kvanttikestävä – ChaCha20-Poly1305-salaus
- Nollatietoinen – Forward Email ei voi purkaa postilaatikkoasi
- Eristetty – Jokainen postilaatikko on eristetty ja siirrettävä
- Palauttamaton – Jos unohdat salasanasi, postilaatikkosi menetetään
Salausvertailu
| Ominaisuus | OpenPGP | S/MIME | SQLite Encryption |
|---|---|---|---|
| End-to-End | ✅ Kyllä | ✅ Kyllä | ✅ Kyllä |
| Avainhallinta | Itsehallittu | CA:n myöntämä | Salasanapohjainen |
| Asiakastuki | Vaatii lisäosan | Natiivisti | Läpinäkyvä |
| Käyttötarkoitus | Henkilökohtainen | Yrityskäyttö | Tallennus |
| Kvanttivarma | ⚠️ Riippuu avaimesta | ⚠️ Riippuu sertifikaatista | ✅ Kyllä |
Salausprosessi
Laajennettu toiminnallisuus
Sähköpostiviestin formaattistandardit
Note
Forward Email tukee moderneja sähköpostiformaattistandardeja rikasta sisältöä ja kansainvälistämistä varten.
Forward Email tukee standardeja sähköpostiviestiformaatteja:
| RFC | Otsikko | Toteutusmuistiinpanot |
|---|---|---|
| RFC 5322 | Internet Message Format | Täysi tuki |
| RFC 2045 | MIME Osa Yksi: Internet-viestirunkojen formaatti | Täysi MIME-tuki |
| RFC 2046 | MIME Osa Kaksi: Mediatyypit | Täysi MIME-tuki |
| RFC 2047 | MIME Osa Kolme: Viestin otsikkolaajennukset ei-ASCII-tekstille | Täysi MIME-tuki |
| RFC 2048 | MIME Osa Neljä: Rekisteröintimenettelyt | Täysi MIME-tuki |
| RFC 2049 | MIME Osa Viisi: Yhdenmukaisuuskriteerit ja esimerkit | Täysi MIME-tuki |
Sähköpostiformaattistandardit määrittelevät, miten sähköpostiviestit on jäsennelty, koodattu ja esitetty.
Formaattistandardien tuki
| Standardi | RFC | Tila | Kuvaus |
|---|---|---|---|
| MIME | RFC 2045-2049 | ✅ Tuettu | Monikäyttöiset Internetin sähköpostilaajennukset |
| SMTPUTF8 | RFC 6531 | ⚠️ Osittainen | Kansainvälistetyt sähköpostiosoitteet |
| EAI | RFC 6530 | ⚠️ Osittainen | Sähköpostiosoitteiden kansainvälistäminen |
| Viestiformaatti | RFC 5322 | ✅ Tuettu | Internet Message Format |
| MIME-turvallisuus | RFC 1847 | ✅ Tuettu | Turvallisuusmoniosaiset MIME:lle |
MIME (Monikäyttöiset Internetin sähköpostilaajennukset)
MIME mahdollistaa sähköpostien sisältävän useita osia eri sisältötyypeillä (teksti, HTML, liitteet jne.).
Tuetut MIME-ominaisuudet:
- Moniosaiset viestit (mixed, alternative, related)
- Content-Type -otsikot
- Content-Transfer-Encoding (7bit, 8bit, quoted-printable, base64)
- Sisäiset kuvat ja liitteet
- Rikas HTML-sisältö
SMTPUTF8 ja sähköpostiosoitteiden kansainvälistäminen
Warning
SMTPUTF8-tuki on osittaista – kaikki ominaisuudet eivät ole täysin toteutettuja.
SMTPUTF8 sallii sähköpostiosoitteiden sisältää ei-ASCII-merkkejä (esim. 用户@例え.jp).
Nykyinen tila:
- ⚠️ Osittainen tuki kansainvälistetyille sähköpostiosoitteille
- ✅ UTF-8-sisältö viestien runko-osissa
- ⚠️ Rajoitettu tuki ei-ASCII paikallisosille
Kalenterointi- ja yhteystietoprotokollat
Note
Forward Email tarjoaa täydellisen CalDAV- ja CardDAV-tuen kalenterin ja yhteystietojen synkronointiin.
Forward Email tukee CalDAV:ta ja CardDAV:ta caldav-adapter -kirjaston kautta:
| RFC | Otsikko | Tila | Toteutusmuistiinpanot |
|---|---|---|---|
| RFC 4791 | Kalenterilaajennukset WebDAV:iin (CalDAV) | ✅ Tuettu | Kalenterin käyttö ja hallinta |
| RFC 6352 | CardDAV: vCard-laajennukset WebDAV:iin | ✅ Tuettu | Yhteystietojen käyttö ja hallinta |
| RFC 5545 | Internet-kalenterointi ja aikataulutusydinobjektin määrittely (iCalendar) | ✅ Tuettu | iCalendar-muodon tuki |
| RFC 6350 | vCard-muodon määrittely | ✅ Tuettu | vCard 4.0 -muodon tuki |
| RFC 6638 | Aikataulutuslaajennukset CalDAV:lle | ✅ Tuettu | CalDAV-aikataulutus iMIP-tuella. Katso commit c4d1629 |
| RFC 5546 | iCalendar-siirrosta riippumaton yhteentoimivuusprotokolla (iTIP) | ✅ Tuettu | iTIP-tuki REQUEST-, REPLY-, CANCEL- ja VFREEBUSY-menetelmille. Katso commit c4d1629 |
| RFC 6047 | iCalendar-viestipohjainen yhteentoimivuusprotokolla (iMIP) | ✅ Tuettu | Sähköpostipohjaiset kalenterikutsut vastauslinkkeineen. Katso commit c4d1629 |
CalDAV ja CardDAV ovat protokollia, jotka mahdollistavat kalenteri- ja yhteystietojen käytön, jakamisen ja synkronoinnin laitteiden välillä.
CalDAV- ja CardDAV-tuki
| Protokolla | RFC | Tila | Kuvaus |
|---|---|---|---|
| CalDAV | RFC 4791 | ✅ Tuettu | Kalenterin käyttö ja synkronointi |
| CardDAV | RFC 6352 | ✅ Tuettu | Yhteystietojen käyttö ja synkronointi |
| iCalendar | RFC 5545 | ✅ Tuettu | Kalenteridatan muoto |
| vCard | RFC 6350 | ✅ Tuettu | Yhteystietodatan muoto |
| VTODO | RFC 5545 | ✅ Tuettu | Tehtävien/muistutusten tuki |
| CalDAV Scheduling | RFC 6638 | ✅ Tuettu | Kalenterin aikataulutuslaajennukset |
| iTIP | RFC 5546 | ✅ Tuettu | Siirrosta riippumaton yhteentoimivuus |
| iMIP | RFC 6047 | ✅ Tuettu | Sähköpostipohjaiset kalenterikutsut |
CalDAV (Kalenterin käyttö)
CalDAV mahdollistaa kalentereiden käytön ja hallinnan millä tahansa laitteella tai sovelluksella.
Keskeiset ominaisuudet:
- Monilaitteinen synkronointi
- Jaetut kalenterit
- Kalenteritilaukset
- Tapahtumakutsut ja vastaukset
- Toistuvat tapahtumat
- Aikavyöhyketuki
Yhteensopivat asiakkaat:
- Apple Calendar (macOS, iOS)
- Mozilla Thunderbird
- Evolution
- GNOME Calendar
- Mikä tahansa CalDAV-yhteensopiva asiakas
CardDAV (Yhteystietojen käyttö)
CardDAV mahdollistaa yhteystietojen käytön ja hallinnan millä tahansa laitteella tai sovelluksella.
Keskeiset ominaisuudet:
- Monilaitteinen synkronointi
- Jaetut osoitekirjat
- Yhteystietoryhmät
- Kuvien tuki
- Mukautetut kentät
- vCard 4.0 -tuki
Yhteensopivat asiakkaat:
- Apple Contacts (macOS, iOS)
- Mozilla Thunderbird
- Evolution
- GNOME Contacts
- Mikä tahansa CardDAV-yhteensopiva asiakas
Tehtävät ja muistutukset (CalDAV VTODO)
Tip
Forward Email tukee tehtäviä ja muistutuksia CalDAV VTODO:n kautta.
VTODO on osa iCalendar-muotoa ja mahdollistaa tehtävien hallinnan CalDAV:n kautta.
Keskeiset ominaisuudet:
- Tehtävien luonti ja hallinta
- Eräpäivät ja prioriteetit
- Tehtävien suorittamisen seuranta
- Toistuvat tehtävät
- Tehtävälistat/kategoriat
Yhteensopivat asiakkaat:
- Apple Reminders (macOS, iOS)
- Mozilla Thunderbird (Lightning-laajennuksella)
- Evolution
- GNOME To Do
- Mikä tahansa CalDAV-asiakas, joka tukee VTODO:a
CalDAV/CardDAV-synkronointivirta
Kalenterilaajennukset, joita EI tueta
Seuraavia kalenterilaajennuksia EI tueta:
| RFC | Otsikko | Syy |
|---|---|---|
| RFC 4918 | HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) | CalDAV käyttää WebDAV-konsepteja, mutta ei toteuta koko RFC 4918:aa |
| RFC 6578 | Collection Synchronization for WebDAV | Ei toteutettu |
| RFC 3744 | WebDAV Access Control Protocol | Ei toteutettu |
Sähköpostiviestien suodatus
Important
Forward Email tarjoaa täyden Sieve- ja ManageSieve-tuen palvelinpuolen sähköpostisuodatukseen. Luo tehokkaita sääntöjä saapuvien viestien automaattiseen lajitteluun, suodatukseen, edelleenlähetykseen ja vastaamiseen.
Sieve (RFC 5228)
Sieve on standardoitu, tehokas skriptikieli palvelinpuolen sähköpostisuodatukseen. Forward Email toteuttaa kattavan Sieve-tuen 24 laajennuksella.
Lähdekoodi: helpers/sieve/
Tuetut ydinsieve-RFC:t
| RFC | Otsikko | Tila |
|---|---|---|
| RFC 5228 | Sieve: Sähköpostin suodatuskieli | ✅ Täysi tuki |
| RFC 5429 | Sieve-sähköpostisuodatus: Hylkäys- ja laajennettu hylkäys | ✅ Täysi tuki |
| RFC 5230 | Sieve-sähköpostisuodatus: Lomalaajennus | ✅ Täysi tuki |
| RFC 6131 | Sieve-lomalaajennus: "Seconds"-parametri | ✅ Täysi tuki |
| RFC 5232 | Sieve-sähköpostisuodatus: Imap4flags-laajennus | ✅ Täysi tuki |
| RFC 5173 | Sieve-sähköpostisuodatus: Body-laajennus | ✅ Täysi tuki |
| RFC 5229 | Sieve-sähköpostisuodatus: Muuttujalaajennus | ✅ Täysi tuki |
| RFC 5231 | Sieve-sähköpostisuodatus: Relaatiolaajennus | ✅ Täysi tuki |
| RFC 4790 | Internet Application Protocol Collation Registry | ✅ Täysi tuki |
| RFC 3894 | Sieve-laajennus: Kopiointi ilman sivuvaikutuksia | ✅ Täysi tuki |
| RFC 5293 | Sieve-sähköpostisuodatus: Editheader-laajennus | ✅ Täysi tuki |
| RFC 5260 | Sieve-sähköpostisuodatus: Päivämäärä- ja indeksiälaajennukset | ✅ Täysi tuki |
| RFC 5435 | Sieve-sähköpostisuodatus: Ilmoituslaajennus | ✅ Täysi tuki |
| RFC 5183 | Sieve-sähköpostisuodatus: Ympäristölaajennus | ✅ Täysi tuki |
| RFC 5490 | Sieve-sähköpostisuodatus: Laajennukset postilaatikon tilan tarkistukseen | ✅ Täysi tuki |
| RFC 8579 | Sieve-sähköpostisuodatus: Toimitus erityiskäyttöpostilaatikoihin | ✅ Täysi tuki |
| RFC 7352 | Sieve-sähköpostisuodatus: Kaksoistoimitusten tunnistus | ✅ Täysi tuki |
| RFC 5463 | Sieve-sähköpostisuodatus: Ihave-laajennus | ✅ Täysi tuki |
| RFC 5233 | Sieve-sähköpostisuodatus: Aliosoite-laajennus | ✅ Täysi tuki |
| draft-ietf-sieve-regex | Sieve-sähköpostisuodatus: Säännöllisten lausekkeiden laajennus | ✅ Täysi tuki |
Tuetut Sieve-laajennukset
| Laajennus | Kuvaus | Integraatio |
|---|---|---|
fileinto |
Tallenna viestit tiettyihin kansioihin | Viestit tallennetaan määriteltyyn IMAP-kansioon |
reject / ereject |
Hylkää viestit virheilmoituksella | SMTP-hylkäys palautusviestillä |
vacation |
Automaattiset lomavastausviestit | Jonotetaan Emails.queue-palvelussa rajoituksin |
vacation-seconds |
Tarkemmat lomavastausvälit | TTL :seconds-parametrista |
imap4flags |
Aseta IMAP-liput (\Seen, \Flagged, jne.) | Liput asetetaan viestin tallennuksen yhteydessä |
envelope |
Testaa kuoren lähettäjä/vastaanottaja | Pääsy SMTP-kuoren tietoihin |
body |
Testaa viestin sisältöä | Kokonaisen viestitekstin vastaavuus |
variables |
Tallenna ja käytä muuttujia skripteissä | Muuttujien laajennus modifikaattoreilla |
relational |
Relaatiovertailut | :count, :value gt/lt/eq-vertailut |
comparator-i;ascii-numeric |
Numeraaliset vertailut | Numeraalinen merkkijonojen vertailu |
copy |
Kopioi viestit uudelleenohjauksen yhteydessä | :copy-lippu fileinto/redirect-komentoihin |
editheader |
Lisää tai poista viestin otsikoita | Otsikoita muokataan ennen tallennusta |
date |
Testaa päivämäärä/aikaleima-arvoja | currentdate ja otsikon päivämäärätestit |
index |
Pääsy tiettyihin otsikon esiintymiin | :index moniarvoisille otsikoille |
regex |
Säännöllisten lausekkeiden vastaavuus | Täysi regex-tuki testeissä |
enotify |
Lähetä ilmoituksia | mailto:-ilmoitukset Emails.queue-palvelun kautta |
environment |
Pääsy ympäristötietoihin | Domain, host, remote-ip istunnosta |
mailbox |
Testaa postilaatikon olemassaolo | mailboxexists-testi |
special-use |
Tallenna erikoiskäyttöisiin postilaatikoihin | Karttaa \Junk, \Trash jne. kansioihin |
duplicate |
Havaitse kaksoiskappaleviestit | Redis-pohjainen kaksoiskappaleiden seuranta |
ihave |
Testaa laajennuksen saatavuus | Ajonaikainen kyvykkyyden tarkistus |
subaddress |
Pääsy käyttäjä+lisätiedot-osioihin | :user ja :detail osoiteosat |
Sieve-laajennukset, joita EI tueta
| Laajennus | RFC | Syy |
|---|---|---|
include |
RFC 6609 | Turvariski (skriptin injektointi), vaatii globaalin skriptivaraston |
mboxmetadata / servermetadata |
RFC 5490 | Vaatii IMAP METADATA -laajennuksen |
fcc |
RFC 8580 | Vaatii Lähetetyt-kansion integraation |
encoded-character |
RFC 5228 | Parsinmuutoksia vaaditaan ${hex:}-syntaksille |
foreverypart / mime / extracttext |
RFC 5703 | Monimutkainen MIME-puun käsittely |
Siivilän käsittelyprosessi
Turvaominaisuudet
Forward Emailn Siivilä-toteutus sisältää kattavat turvasuojaukset:
- CVE-2023-26430-suojaus: Estää uudelleenohjaussilmukat ja sähköpostipommitushyökkäykset
- Rajoitukset: Uudelleenohjauksille (10/viesti, 100/päivä) ja lomavastauksille asetetut rajat
- Kieltolistatarkistus: Uudelleenohjausosoitteet tarkistetaan kieltolistalta
- Suojaetut otsikot: DKIM-, ARC- ja todennusotsikoita ei voi muokata editheader-komennolla
- Skriptin kokorajoitukset: Maksimikoko pakotettu
- Suoritusaikarajat: Skriptit keskeytetään, jos suoritusaika ylittää rajan
Esimerkkisiiviläskriptit
Tallenna uutiskirjeet kansioon:
require ["fileinto"];
if header :contains "List-Id" "newsletter" {
fileinto "Newsletters";
}
Lomavastaaja hienosäädetyllä ajoituksella:
require ["vacation", "vacation-seconds"];
vacation :seconds 3600 :subject "Poissa toimistolta"
"Olen tällä hetkellä poissa ja vastaan 24 tunnin sisällä.";
Roskapostisuodatus lipukkeilla:
require ["fileinto", "imap4flags"];
if header :contains "X-Spam-Status" "Yes" {
setflag "\\Seen";
fileinto "Junk";
}
Monimutkainen suodatus muuttujilla:
require ["variables", "fileinto", "regex"];
if header :regex "From" "(.+)@example\\.com" {
set :lower "sender" "${1}";
fileinto "Contacts/${sender}";
}
Tip
Täydellistä dokumentaatiota, esimerkkiskriptejä ja konfigurointiohjeita varten katso UKK: Tuetteko Siivilä-sähköpostisuodatusta?
ManageSieve (RFC 5804)
Forward Email tarjoaa täyden ManageSieve-protokollan tuen Siivilä-skriptien etähallintaan.
Lähdekoodi: managesieve-server.js
| RFC | Otsikko | Tila |
|---|---|---|
| RFC 5804 | Protokolla Siivilä-skriptien etähallintaan | ✅ Täysi tuki |
ManageSieve-palvelimen asetukset
| Asetus | Arvo |
|---|---|
| Palvelin | imap.forwardemail.net |
| Portti (STARTTLS) | 2190 (suositeltu) |
| Portti (implisiittinen TLS) | 4190 |
| Todennus | PLAIN (TLS:n yli) |
Huom: Portti 2190 käyttää STARTTLS:ää (päivitys tavallisesta TLS:ään) ja on yhteensopiva useimpien ManageSieve-asiakkaiden kanssa, mukaan lukien sieve-connect. Portti 4190 käyttää implisiittistä TLS:ää (TLS yhteyden alusta alkaen) asiakkaille, jotka tukevat sitä.
Tuetut ManageSieve-komennot
| Komento | Kuvaus |
|---|---|
AUTHENTICATE |
Todennus PLAIN-mekanismilla |
CAPABILITY |
Palvelimen ominaisuuksien ja laajennusten lista |
HAVESPACE |
Tarkista, voiko skripti tallentua |
PUTSCRIPT |
Lataa uusi skripti |
LISTSCRIPTS |
Listaa kaikki skriptit aktiivisuustilalla |
SETACTIVE |
Aktivoi skripti |
GETSCRIPT |
Lataa skripti |
DELETESCRIPT |
Poista skripti |
RENAMESCRIPT |
Nimeä skripti uudelleen |
CHECKSCRIPT |
Tarkista skriptin syntaksi |
NOOP |
Pidä yhteys elossa |
LOGOUT |
Lopeta istunto |
Yhteensopivat ManageSieve-asiakkaat
- Thunderbird: Sisäänrakennettu Sieve-tuki Sieve-lisäosan kautta
- Roundcube: ManageSieve-laajennus
- KMail: Natiivisti ManageSieve-tuki
- sieve-connect: Komentoriviasiakas
- Mikä tahansa RFC 5804 -yhteensopiva asiakas
ManageSieve-protokollan kulku
Verkkokäyttöliittymä ja API
ManageSieve:n lisäksi Forward Email tarjoaa:
- Verkkohallintapaneeli: Luo ja hallinnoi Sieve-skriptejä verkkokäyttöliittymän kautta kohdassa Oma tili → Domainit → Aliaset → Sieve-skriptit
- REST API: Ohjelmallinen pääsy Sieve-skriptien hallintaan Forward Email API:n kautta
Tip
Yksityiskohtaiset asennusohjeet ja asiakasohjelman asetukset löytyvät kohdasta UKK: Tuetteko Sieve-sähköpostisuodatusta?
Tallennuksen optimointi
Important
Alan ensimmäinen tallennusteknologia: Forward Email on ainoa sähköpostipalveluntarjoaja maailmassa, joka yhdistää liitetiedostojen deduplikoinnin ja Brotli-pakkauksen sähköpostisisällössä. Tämä kaksikerroksinen optimointi tarjoaa sinulle 2-3-kertaisesti tehokkaamman tallennustilan verrattuna perinteisiin sähköpostipalveluihin.
Forward Email toteuttaa kaksi vallankumouksellista tallennuksen optimointitekniikkaa, jotka pienentävät postilaatikon kokoa dramaattisesti säilyttäen täyden RFC-yhteensopivuuden ja viestin eheys:
- Liitetiedostojen deduplikointi – Poistaa päällekkäiset liitteet kaikista sähköposteista
- Brotli-pakkaus – Vähentää tallennustilaa 46–86 % metatiedoissa ja 50 % liitteissä
Arkkitehtuuri: Kaksikerroksinen tallennuksen optimointi
Liitetiedostojen deduplikointi
Forward Email toteuttaa liitetiedostojen deduplikoinnin perustuen WildDuckin todistettuun lähestymistapaan, mukautettuna SQLite-tallennukseen.
Note
Mikä deduplikointiin kuuluu: "Liitetiedosto" tarkoittaa koodattua MIME-solmun sisältöä (base64 tai quoted-printable), ei purettua tiedostoa. Tämä säilyttää DKIM- ja GPG-allekirjoitusten pätevyyden.
Miten se toimii
WildDuckin alkuperäinen toteutus (MongoDB GridFS):
Wild Duck IMAP -palvelin deduplikoi liitteet. "Liitetiedosto" tässä tarkoittaa base64- tai quoted-printable-koodattua MIME-solmun sisältöä, ei purettua tiedostoa. Vaikka koodatun sisällön käyttäminen aiheuttaa paljon vääriä negatiiveja (sama tiedosto eri sähköposteissa saatetaan laskea eri liitteiksi), se on tarpeen eri allekirjoitusjärjestelmien (DKIM, GPG jne.) pätevyyden takaamiseksi. Wild Duckista haettu viesti näyttää täsmälleen samalta kuin tallennettu viesti, vaikka Wild Duck jäsentää viestin puumaiseksi objektiksi ja rakentaa viestin uudelleen haettaessa. Forward Emailn SQLite-toteutus:
Forward Email soveltaa tätä lähestymistapaa salattuun SQLite-tallennukseen seuraavan prosessin avulla:
- Tiivisteen laskenta: Kun liite löytyy, tiiviste lasketaan käyttämällä
rev-hash-kirjastoa liitteen sisällöstä - Haku: Tarkistetaan, onko
Attachments-taulussa liitettä, jonka tiiviste vastaa - Viittauslaskenta:
- Jos löytyy: Kasvatetaan viittauslaskuria yhdellä ja maagista laskuria satunnaisluvulla
- Jos uusi: Luodaan uusi liite-merkintä laskurilla = 1
- Poiston turvallisuus: Käyttää kaksilaskurijärjestelmää (viittaus + maaginen) väärien positiivisten estämiseksi
- Roskan keruu: Liitteet poistetaan välittömästi, kun molemmat laskurit saavuttavat nollan
Lähdekoodi: helpers/attachment-storage.js
Dedupikointivirtaus
Maaginen lukujärjestelmä
Forward Email käyttää WildDuckin "maaginen luku" -järjestelmää (inspiroitunut Mail.ru:sta) väärien positiivisten estämiseksi poistojen aikana:
- Jokaiselle viestille annetaan satunnainen luku
- Liitteen maaginen laskuri kasvaa sillä satunnaisluvulla, kun viesti lisätään
- Maaginen laskuri vähenee samalla luvulla, kun viesti poistetaan
- Liite poistetaan vain, kun molemmat laskurit (viittaus + maaginen) ovat nollassa
Tämä kaksilaskurijärjestelmä varmistaa, että jos poistossa tapahtuu virhe (esim. kaatuminen, verkkovirhe), liitettä ei poisteta ennenaikaisesti.
Keskeiset erot: WildDuck vs Forward Email
| Ominaisuus | WildDuck (MongoDB) | Forward Email (SQLite) |
|---|---|---|
| Tallennustausta | MongoDB GridFS (paloiteltu) | SQLite BLOB (suora) |
| Tiivistealgoritmi | SHA256 | rev-hash (SHA-256-pohjainen) |
| Viittauslaskenta | ✅ Kyllä | ✅ Kyllä |
| Maagiset luvut | ✅ Kyllä (Mail.ru inspiroima) | ✅ Kyllä (sama järjestelmä) |
| Roskan keruu | Viivästetty (erillinen työ) | Välitön (kun laskurit nollassa) |
| Pakkaus | ❌ Ei lainkaan | ✅ Brotli (katso alla) |
| Salaus | ❌ Valinnainen | ✅ Aina (ChaCha20-Poly1305) |
Brotli-pakkaus
Important
Maailman ensimmäinen: Forward Email on ainoa sähköpostipalvelu maailmassa, joka käyttää Brotli-pakkausta sähköpostin sisällössä. Tämä tarjoaa 46–86 % tallennussäästöä liitteiden deduplikoinnin lisäksi.
Forward Email toteuttaa Brotli-pakkauksen sekä liitteiden sisällöille että viestien metatiedoille, tarjoten valtavia tallennussäästöjä säilyttäen taaksepäin yhteensopivuuden.
Toteutus: helpers/msgpack-helpers.js
Mitä pakataan
1. Liitteiden sisällöt (encodeAttachmentBody)
- Vanhat muodot: Hex-koodattu merkkijono (2x koko) tai raakadata Bufferina
- Uusi muoto: Brotli-pakattu Buffer, jossa "FEBR" maaginen otsikko
- Pakkauspäätös: Pakkaa vain, jos säästää tilaa (ottaa huomioon 4 tavun otsikon)
- Tallennussäästö: Jopa 50 % (hex → natiivi BLOB)
2. Viestin metatiedot (
encodeMetadata)
Sisältää: mimeTree, headers, envelope, flags
- Vanha formaatti: JSON-tekstimerkkijono
- Uusi formaatti: Brotli-pakattu Buffer
- Tallennussäästö: 46-86% viestin monimutkaisuudesta riippuen
Pakkausasetukset
// Brotli-pakkausasetukset optimoitu nopeudelle (taso 4 on hyvä tasapaino)
const BROTLI_COMPRESS_OPTIONS = {
params: {
[zlib.constants.BROTLI_PARAM_QUALITY]: 4
}
};
Miksi taso 4?
- Nopea pakkaus/purku: Prosessointi alle millisekunnissa
- Hyvä pakkaussuhde: 46-86% säästöä
- Tasapainoinen suorituskyky: Optimaalinen reaaliaikaisiin sähköpostitoimintoihin
Taikapääte: "FEBR"
Forward Email käyttää 4 tavun taikapäätettä tunnistaakseen pakatut liitetiedostojen rungot:
"FEBR" = Forward Email BRotli
Hex: 0x46 0x45 0x42 0x52
Miksi taikapääte?
- Formaatin tunnistus: Tunnistaa välittömästi pakatun vs. pakkaamattoman datan
- Taaksepäin yhteensopiva: Vanhat heksamerkkijonot ja raakabufferit toimivat edelleen
- Ristiriitojen välttäminen: "FEBR" on epätodennäköinen esiintyä laillisessa liitetiedostodatassa alussa
Pakkausprosessi
Purkuprosessi
Taaksepäin yhteensopivuus
Kaikki purkutoiminnot tunnistavat automaattisesti tallennusformaatin:
| Formaatti | Tunnistusmenetelmä | Käsittely |
|---|---|---|
| Brotli-pakattu | Tarkista "FEBR" taikapääte | Pura zlib.brotliDecompressSync()-funktiolla |
| Raakabufferi | Buffer.isBuffer() ilman taikapäätettä |
Palauta sellaisenaan |
| Heksamerkkijono | Tarkista parillinen pituus + [0-9a-f] merkit | Dekoodaa Buffer.from(value, 'hex')-funktiolla |
| JSON-merkkijono | Tarkista ensimmäinen merkki { tai [ |
Parsii JSON.parse()-funktiolla |
Tämä varmistaa nolla tietohäviön siirryttäessä vanhoista uusiin tallennusformaatteihin.
Tallennussäästötilastot
Mittaustulokset tuotantodatalta:
| Datatyyppi | Vanha formaatti | Uusi formaatti | Säästö |
|---|---|---|---|
| Liitetiedostojen rungot | Hekso-koodattu merkkijono (2x) | Brotli-pakattu BLOB | 50% |
| Viestin metatiedot | JSON-teksti | Brotli-pakattu BLOB | 46-86% |
| Postilaatikon liput | JSON-teksti | Brotli-pakattu BLOB | 60-80% |
Lähde: helpers/migrate-storage-format.js
Siirtoprosessi
Forward Email tarjoaa automaattisen, idempotentin siirron vanhoista uusiin tallennusformaatteihin: // Seuratut migraatiotilastot: { attachmentsMigrated: 0, messagesMigrated: 0, mailboxesMigrated: 0, bytesSaved: 0 // Kokonaismäärä tallennettua tavua pakkaamisen ansiosta }
**Migraatiovaiheet:**
1. Liitetiedostojen sisällöt: heksakoodaus → natiivinen BLOB (50 % säästö)
2. Viestien metatiedot: JSON-teksti → brotli-pakattu BLOB (46–86 % säästö)
3. Postilaatikon liput: JSON-teksti → brotli-pakattu BLOB (60–80 % säästö)
**Lähde:** [`helpers/migrate-storage-format.js`](https://github.com/forwardemail/forwardemail.net/blob/master/helpers/migrate-storage-format.js)
---
### Yhdistetty tallennustehokkuus {#combined-storage-efficiency}
> \[!TIP]
> **Todellinen vaikutus:** Liitetiedostojen duplikaattien poiston ja Brotli-pakkauksen ansiosta Forward Emailin käyttäjät saavat **2–3-kertaisesti tehokkaamman tallennustilan** verrattuna perinteisiin sähköpostipalveluihin.
**Esimerkkitilanne:**
Perinteinen sähköpostipalvelu (1 Gt postilaatikko):
* 1 Gt levytilaa = 1 Gt sähköposteja
* Ei duplikaattien poistoa: Sama liite tallennetaan 10 kertaa = 10-kertainen tallennushukka
* Ei pakkausta: Täysi JSON-metatieto tallennetaan = 2–3-kertainen tallennushukka
Forward Email (1 Gt postilaatikko):
* 1 Gt levytilaa ≈ **2–3 Gt sähköposteja** (tehokas tallennus)
* Duplikaattien poisto: Sama liite tallennetaan kerran, viitataan 10 kertaa
* Pakkaus: 46–86 % säästö metatiedoissa, 50 % liitteissä
* Salaus: ChaCha20-Poly1305 (ei tallennusylijäämää)
**Vertailutaulukko:**
| Palveluntarjoaja | Tallennusteknologia | Tehokas tallennus (1 Gt postilaatikko) |
| ----------------- | -------------------------------------------- | ------------------------------------- |
| Gmail | Ei mitään | 1 Gt |
| iCloud | Ei mitään | 1 Gt |
| Outlook.com | Ei mitään | 1 Gt |
| Fastmail | Ei mitään | 1 Gt |
| ProtonMail | Vain salaus | 1 Gt |
| Tutanota | Vain salaus | 1 Gt |
| **Forward Email** | **Duplikaattien poisto + pakkaus + salaus** | **2–3 Gt** ✨ |
### Tekninen toteutus {#technical-implementation-details}
**Suorituskyky:**
* Brotli taso 4: Alle millisekunnin pakkaus/purku
* Ei suorituskyvyn heikkenemistä pakkauksesta
* SQLite FTS5: Alle 50 ms haku NVMe SSD:llä
**Turvallisuus:**
* Pakkaus tapahtuu **salauksen jälkeen** (SQLite-tietokanta on salattu)
* ChaCha20-Poly1305 -salauksen ja Brotli-pakkauksen yhdistelmä
* Nollatietoinen: Vain käyttäjällä on purkusalasana
**RFC-yhteensopivuus:**
* Haetut viestit näyttävät **täsmälleen samalta** kuin tallennettuina
* DKIM-allekirjoitukset pysyvät voimassa (koodattu sisältö säilyy)
* GPG-allekirjoitukset pysyvät voimassa (allekirjoitettua sisältöä ei muuteta)
### Miksi muut palveluntarjoajat eivät tee näin {#why-no-other-provider-does-this}
**Monimutkaisuus:**
* Vaatii syvää integraatiota tallennustasoon
* Taaksepäin yhteensopivuus on haastavaa
* Vanhojen formaattien migraatio on monimutkaista
**Suorituskykyhuolet:**
* Pakkaus lisää CPU-kuormaa (ratkaistu Brotli tason 4 avulla)
* Purku jokaisella lukukerralla (ratkaistu SQLite-välimuistilla)
**Forward Emailin etu:**
* Rakennettu alusta alkaen optimointia ajatellen
* SQLite mahdollistaa suoran BLOB-käsittelyn
* Käyttäjäkohtaiset salatut tietokannat mahdollistavat turvallisen pakkauksen
---
---
## Modernit ominaisuudet {#modern-features}
## Täydellinen REST API sähköpostinhallintaan {#complete-rest-api-for-email-management}
> \[!TIP]
> Forward Email tarjoaa kattavan REST API:n, jossa on 39 päätepistettä ohjelmalliseen sähköpostinhallintaan.
> \[!TIP]
> **Ainutlaatuinen toimialaominaisuus:** Toisin kuin mikään muu sähköpostipalvelu, Forward Email tarjoaa täydellisen ohjelmallisen pääsyn postilaatikkoosi, kalenteriisi, yhteystietoihisi, viesteihisi ja kansioihisi kattavan REST API:n kautta. Tämä on suoraa vuorovaikutusta salatun SQLite-tietokantatiedostosi kanssa, joka tallentaa kaikki tietosi.
Forward Email tarjoaa täydellisen REST API:n, joka antaa ennennäkemättömän pääsyn sähköpostitietoihisi. Mikään muu sähköpostipalvelu (mukaan lukien Gmail, iCloud, Outlook, ProtonMail, Tuta tai Fastmail) ei tarjoa tätä tasoa kattavaa, suoraa tietokantayhteyttä.
**API-dokumentaatio:** <https://forwardemail.net/en/email-api>
### API-kategoriat (39 päätepistettä) {#api-categories-39-endpoints}
**1. Viestit API** (5 päätepistettä) - Täydelliset CRUD-toiminnot sähköpostiviesteille:
* `GET /v1/messages` - Listaa viestit 15+ edistyneellä hakuehdolla (ei mikään muu palvelu tarjoa tätä)
* `POST /v1/messages` - Luo/lähetä viestejä
* `GET /v1/messages/:id` - Hae viesti
* `PUT /v1/messages/:id` - Päivitä viesti (liput, kansiot)
* `DELETE /v1/messages/:id` - Poista viesti
*Esimerkki: Etsi kaikki viime neljänneksen laskut liitteineen:*
```bash
curl -u "alias@domain.com:password" \
"https://api.forwardemail.net/v1/messages?q=subject:invoice+has:attachment+after:2024-01-01+before:2024-04-01"
Katso Edistyneen haun dokumentaatio
2. Kansiot API (5 päätepistettä) - Täydellinen IMAP-kansiomanagement RESTin kautta:
GET /v1/folders- Listaa kaikki kansiotPOST /v1/folders- Luo kansioGET /v1/folders/:id- Hae kansioPUT /v1/folders/:id- Päivitä kansioDELETE /v1/folders/:id- Poista kansio
3. Yhteystiedot API (5 päätepistettä) - CardDAV-yhteystietojen tallennus RESTin kautta:
GET /v1/contacts- Listaa yhteystiedotPOST /v1/contacts- Luo yhteystieto (vCard-muodossa)GET /v1/contacts/:id- Hae yhteystietoPUT /v1/contacts/:id- Päivitä yhteystietoDELETE /v1/contacts/:id- Poista yhteystieto
4. Kalenterit API (5 päätepistettä) - Kalenterikonttien hallinta:
GET /v1/calendars- Listaa kalenterikontitPOST /v1/calendars- Luo kalenteri (esim. "Työkalenteri", "Henkilökohtainen kalenteri")GET /v1/calendars/:id- Hae kalenteriPUT /v1/calendars/:id- Päivitä kalenteriDELETE /v1/calendars/:id- Poista kalenteri
5. Kalenteritapahtumat API (5 päätepistettä) - Tapahtumien aikataulutus kalentereissa:
GET /v1/calendar-events- Listaa tapahtumatPOST /v1/calendar-events- Luo tapahtuma osallistujineenGET /v1/calendar-events/:id- Hae tapahtumaPUT /v1/calendar-events/:id- Päivitä tapahtumaDELETE /v1/calendar-events/:id- Poista tapahtuma
Esimerkki: Luo kalenteritapahtuma:
curl -u "alias@domain.com:password" \
-X POST \
-H "Content-Type: application/json" \
-d '{"title":"Tiimipalaveri","start":"2024-12-20T10:00:00Z","attendees":["team@example.com"],"calendar_id":"calendar123"}' \
https://api.forwardemail.net/v1/calendar-events
Tekniset tiedot
- Autentikointi: Yksinkertainen
alias:password-autentikointi (ei OAuth-kompleksisuutta) - Suorituskyky: Alle 50 ms vasteajat SQLite FTS5:llä ja NVMe SSD -tallennuksella
- Nolla verkkoviive: Suora tietokantayhteys, ei välityspalveluita
Käytännön käyttötapaukset
-
Sähköpostianalytiikka: Rakenna räätälöityjä kojelautoja sähköpostimäärien, vastausaikojen ja lähettäjätilastojen seurantaan
-
Automaattiset työnkulut: Käynnistä toimintoja sähköpostin sisällön perusteella (laskujen käsittely, tukipyyntöjen hallinta)
-
CRM-integraatio: Synkronoi sähköpostikeskustelut CRM-järjestelmääsi automaattisesti
-
Säädösten noudattaminen & tiedonhaku: Hae ja vie sähköposteja oikeudellisiin ja säädösten vaatimuksiin
-
Mukautetut sähköpostiohjelmat: Rakenna erikoistuneita sähköpostikäyttöliittymiä työnkulullesi
-
Liiketoimintatiedon hallinta: Analysoi viestintämalleja, vastausprosentteja ja asiakasvuorovaikutusta
-
Dokumenttien hallinta: Tallenna ja luokittele liitteet automaattisesti
Forward Email tarjoaa modernin REST API:n, joka antaa täydellisen hallinnan sähköpostitileihin, domaineihin, aliaksiiin ja viesteihin. Tämä API on tehokas vaihtoehto JMAP:lle ja tarjoaa toiminnallisuutta perinteisten sähköpostiprotokollien ulkopuolella.
| Kategoria | Päätepisteet | Kuvaus |
|---|---|---|
| Tilinhallinta | 8 | Käyttäjätilit, autentikointi, asetukset |
| Domainhallinta | 12 | Mukautetut domainit, DNS, vahvistus |
| Alias-hallinta | 6 | Sähköpostialiakset, edelleenlähetys, catch-all |
| Viestinhallinta | 7 | Lähetä, vastaanota, hae, poista viestejä |
| Kalenterit & yhteystiedot | 4 | CalDAV/CardDAV-käyttö API:n kautta |
| Lokit & analytiikka | 2 | Sähköpostilokit, toimitusraportit |
Tärkeimmät API-ominaisuudet
Edistynyt haku:
API tarjoaa tehokkaat hakutoiminnot kyselysyntaksilla, joka on samanlainen kuin Gmailissa:
GET /v1/messages?q=subject:invoice+has:attachment+after:2024-01-01+before:2024-04-01
Tuetut hakutoiminnot:
from:- Haku lähettäjän mukaanto:- Haku vastaanottajan mukaansubject:- Haku aiheen mukaanhas:attachment- Viestit, joissa on liitteitäis:unread- Lukemattomat viestitis:starred- Tähdellä merkityt viestitafter:- Viestit päivämäärän jälkeenbefore:- Viestit päivämäärän ennenlabel:- Viestit, joissa on tunnistefilename:- Liitteen tiedostonimi
Kalenteritapahtumien hallinta:
GET /v1/calendar-events
POST /v1/calendar-events
PUT /v1/calendar-events/:id
DELETE /v1/calendar-events/:id
Webhook-integraatiot:
API tukee webhookkeja sähköpostitapahtumien (vastaanotetut, lähetetyt, palautuneet jne.) reaaliaikaiseen ilmoittamiseen.
Autentikointi:
- API-avaimen autentikointi
- OAuth 2.0 -tuki
- Kyselyrajoitus: 1000 pyyntöä/tunti
Tietomuoto:
- JSON-pyyntö/vastaus
- RESTful-suunnittelu
- Sivutus tuki
Turvallisuus:
- Vain HTTPS
- API-avaimen kierto
- IP-valkoinen lista (valinnainen)
- Pyyntöjen allekirjoitus (valinnainen)
API-arkkitehtuuri
iOS-push-ilmoitukset
Tip
Forward Email tukee natiivisti iOS-push-ilmoituksia XAPPLEPUSHSERVICE:n kautta välittömään sähköpostin toimitukseen.
Important
Ainutlaatuinen ominaisuus: Forward Email on yksi harvoista avoimen lähdekoodin sähköpostipalvelimista, joka tukee natiivisti iOS-push-ilmoituksia sähköposteille, yhteystiedoille ja kalentereille XAPPLEPUSHSERVICE IMAP-laajennuksen kautta. Tämä on käännetty Applen protokollasta ja tarjoaa välittömän toimituksen iOS-laitteille ilman akun kulutusta.
Forward Email toteuttaa Applen omistaman XAPPLEPUSHSERVICE-laajennuksen, joka tarjoaa natiivin push-ilmoitustuen iOS-laitteille ilman taustakyselyjä.
Kuinka se toimii
XAPPLEPUSHSERVICE on ei-standardi IMAP-laajennus, joka mahdollistaa iOS Mail -sovellukselle välittömät push-ilmoitukset uusista saapuvista sähköposteista.
Forward Email toteuttaa Applen Push Notification Service (APNs) -integraation IMAP:lle, jolloin iOS Mail -sovellus saa välittömät push-ilmoitukset uusista saapuvista sähköposteista.
Keskeiset ominaisuudet
Välitön toimitus:
- Push-ilmoitukset saapuvat sekunneissa
- Ei akkua kuluttavaa taustakyselyä
- Toimii myös Mail-sovelluksen ollessa suljettuna
-
Välitön toimitus: Sähköpostit, kalenteritapahtumat ja yhteystiedot näkyvät iPhonessa/iPadissa heti, eivät kyselyaikataulun mukaan
-
Akkua säästävä: Käyttää Applen push-infrastruktuuria jatkuvien IMAP-yhteyksien ylläpidon sijaan
-
Aihekohtaiset pushit: Tukee push-ilmoituksia tietyille postilaatikoille, ei pelkästään INBOXille
-
Ei kolmannen osapuolen sovelluksia: Toimii natiivien iOS Mail-, Kalenteri- ja Yhteystiedot-sovellusten kanssa Natiivinen integraatio:
-
Sisäänrakennettu iOS Mail -sovellukseen
-
Ei kolmannen osapuolen sovelluksia vaadita
-
Saumaton käyttäjäkokemus
Tietosuoja painottuu:
- Laitetunnukset ovat salattuja
- Viestin sisältöä ei lähetetä APNS:n kautta
- Vain "uusi posti" -ilmoitus lähetetään
Akun säästö:
- Ei jatkuvaa IMAP-kyselyä
- Laite nukkuu, kunnes ilmoitus saapuu
- Minimivaikutus akkuun
Mikä tekee tästä erityisen
Important
Useimmat sähköpostipalveluntarjoajat eivät tue XAPPLEPUSHSERVICE:a, mikä pakottaa iOS-laitteet kyselyyn uuden postin varalta 15 minuutin välein.
Useimmat avoimen lähdekoodin sähköpostipalvelimet (mukaan lukien Dovecot, Postfix, Cyrus IMAP) EIVÄT tue iOS-push-ilmoituksia. Käyttäjien on joko:
- Käytettävä IMAP IDLE -tilaa (pitää yhteyden avoinna, kuluttaa akkua)
- Käytettävä kyselyä (tarkistaa 15-30 minuutin välein, viivästyneet ilmoitukset)
- Käytettävä omia push-infrastruktuureja sisältäviä sähköpostisovelluksia
Forward Email tarjoaa saman välittömän push-ilmoituskokemuksen kuin kaupalliset palvelut kuten Gmail, iCloud ja Fastmail.
Vertailu muihin palveluntarjoajiin:
| Palveluntarjoaja | Push-tuki | Kyselyväli | Akkuvaikutus |
|---|---|---|---|
| Forward Email | ✅ Natiivipush | Välitön | Minimivaikutus |
| Gmail | ✅ Natiivipush | Välitön | Minimivaikutus |
| iCloud | ✅ Natiivipush | Välitön | Minimivaikutus |
| Yahoo | ✅ Natiivipush | Välitön | Minimivaikutus |
| Outlook.com | ❌ Kysely | 15 minuuttia | Kohtalainen |
| Fastmail | ❌ Kysely | 15 minuuttia | Kohtalainen |
| ProtonMail | ⚠️ Vain silta | Siltaa käyttäen | Korkea |
| Tutanota | ❌ Vain sovellus | Ei sovellu | Ei sovellu |
Toteutuksen yksityiskohdat
IMAP CAPABILITY -vastaus:
* CAPABILITY IMAP4rev1 ... XAPPLEPUSHSERVICE ...
Rekisteröitymisprosessi:
- iOS Mail -sovellus havaitsee XAPPLEPUSHSERVICE-ominaisuuden
- Sovellus rekisteröi laitetunnuksen Forward Emailille
- Forward Email tallentaa tunnuksen ja liittää sen tiliin
- Kun uutta postia saapuu, Forward Email lähettää push-ilmoituksen APNS:n kautta
- iOS herättää Mail-sovelluksen hakemaan uudet viestit
Turvallisuus:
- Laitetunnukset ovat salattuina levossa
- Tunnukset vanhenevat ja päivittyvät automaattisesti
- Viestin sisältöä ei paljasteta APNS:lle
- Päätepisteestä päätepisteeseen -salauksen säilyttäminen
- IMAP-laajennus:
XAPPLEPUSHSERVICE - Lähdekoodi: WildDuck Issue #711
- Asennus: Automaattinen - ei konfigurointia, toimii suoraan iOS Mail -sovelluksen kanssa
Vertailu muihin palveluihin
| Palvelu | iOS Push -tuki | Menetelmä |
|---|---|---|
| Forward Email | ✅ Kyllä | XAPPLEPUSHSERVICE (käänteinen suunnittelu) |
| Gmail | ✅ Kyllä | Gmailin oma sovellus + Google push |
| iCloud Mail | ✅ Kyllä | Natiivinen Apple-integraatio |
| Outlook.com | ✅ Kyllä | Outlookin oma sovellus + Microsoft push |
| Fastmail | ✅ Kyllä | XAPPLEPUSHSERVICE |
| Dovecot | ❌ Ei | Vain IMAP IDLE tai kysely |
| Postfix | ❌ Ei | Vain IMAP IDLE tai kysely |
| Cyrus IMAP | ❌ Ei | Vain IMAP IDLE tai kysely |
Gmail Push:
Gmail käyttää omaa push-järjestelmää, joka toimii vain Gmail-sovelluksen kanssa. iOS Mail -sovellus joutuu kyselyyn Gmailin IMAP-palvelimille.
iCloud Push:
iCloudilla on natiivinen push-tuki, joka on samanlainen kuin Forward Emaililla, mutta vain @icloud.com-osoitteille.
Outlook.com ei tue XAPPLEPUSHSERVICE:a, joten iOS Mail joutuu kyselyyn 15 minuutin välein.
Fastmail:
Fastmail ei tue XAPPLEPUSHSERVICE:a. Käyttäjien on käytettävä Fastmail-sovellusta push-ilmoituksiin tai hyväksyttävä 15 minuutin kyselyviiveet.
Testaus ja varmennus
Protokollan ominaisuustestit
Note
Tämä osio sisältää uusimpien protokollakyvykkyystestien tulokset, jotka suoritettiin 22. tammikuuta 2026.
Tämä osio sisältää todelliset CAPABILITY/CAPA/EHLO-vastaukset kaikilta testatuista palveluntarjoajilta. Kaikki testit suoritettiin 22. tammikuuta 2026.
Nämä testit auttavat varmistamaan eri sähköpostiprotokollien ja laajennusten ilmoitetun ja todellisen tuen suurimpien palveluntarjoajien kesken.
Testausmenetelmä
Testausympäristö:
- Päivämäärä: 22. tammikuuta 2026 klo 02:37 UTC
- Sijainti: AWS EC2 -instanssi
- IPv4: 54.167.216.197
- IPv6: 2600:4040:46da:9a00:b19e:3ad4:426c:2f48
- Työkalut: OpenSSL s_client, bash-skriptit
Testatut palveluntarjoajat:
- Forward Email
- Gmail
- Outlook.com
- iCloud
- Fastmail
- Yahoo/AOL (Verizon)
Testauskriptit
Täyden läpinäkyvyyden vuoksi alla on tarkat testauksessa käytetyt skriptit.
IMAP-kyvykkyystesti-skripti
#!/bin/bash
# IMAP Capability Test Script
# Tests IMAP CAPABILITY for various email providers
echo "========================================="
echo "IMAP CAPABILITY TEST"
echo "Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (imap.gmail.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.gmail.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Outlook.com
echo "--- Outlook.com (outlook.office365.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect outlook.office365.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# iCloud
echo "--- iCloud (imap.mail.me.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.mail.me.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Fastmail
echo "--- Fastmail (imap.fastmail.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.fastmail.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Yahoo
echo "--- Yahoo (imap.mail.yahoo.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.mail.yahoo.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Forward Email
echo "--- Forward Email (imap.forwardemail.net:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.forwardemail.net:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
echo "========================================="
echo "Test completed"
echo "========================================="
POP3-kyvykkyystesti-skripti
#!/bin/bash
# POP3 Capability Test Script
# Tests POP3 CAPA for various email providers
echo "========================================="
echo "POP3 CAPABILITY TEST"
echo "Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (pop.gmail.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.gmail.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Outlook.com
echo "--- Outlook.com (outlook.office365.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect outlook.office365.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# iCloud (Huom: iCloud ei tue POP3:ta)
echo "--- iCloud (Ei POP3-tukea) ---"
echo "iCloud ei tue POP3:ta"
echo ""
# Fastmail
echo "--- Fastmail (pop.fastmail.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.fastmail.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Yahoo
echo "--- Yahoo (pop.mail.yahoo.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.mail.yahoo.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Forward Email
echo "--- Forward Email (pop3.forwardemail.net:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop3.forwardemail.net:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
echo "========================================="
echo "Test completed"
echo "========================================="
SMTP Capability Test Script
#!/bin/bash
# SMTP Capability Test Script
# Tests SMTP EHLO for various email providers
echo "========================================="
echo "SMTP CAPABILITY TESTI"
echo "Päivämäärä: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (smtp.gmail.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.gmail.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Outlook.com
echo "--- Outlook.com (smtp.office365.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.office365.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# iCloud
echo "--- iCloud (smtp.mail.me.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.mail.me.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Fastmail
echo "--- Fastmail (smtp.fastmail.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.fastmail.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Yahoo
echo "--- Yahoo (smtp.mail.yahoo.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.mail.yahoo.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Forward Email
echo "--- Forward Email (smtp.forwardemail.net:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.forwardemail.net:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
echo "========================================="
echo "Testi suoritettu"
echo "========================================="
Test Results Summary
IMAP (CAPABILITY)
Forward Email
* CAPABILITY IMAP4rev1 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN CHILDREN ENABLE ID IDLE NAMESPACE QUOTA SASL-IR UNSELECT XLIST XAPPLEPUSHSERVICE
Gmail
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE
iCloud
* OK [CAPABILITY XAPPLEPUSHSERVICE IMAP4 IMAP4rev1 SASL-IR AUTH=ATOKEN AUTH=PLAIN AUTH=ATOKEN2 AUTH=XOAUTH2]
* CAPABILITY IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
Fastmail
* CAPABILITY IMAP4rev1 ACL ANNOTATE-EXPERIMENT-1 CATENATE CONDSTORE ENABLE ESEARCH ESORT I18NLEVEL=1 ID IDLE LIST-EXTENDED LIST-STATUS LITERAL+ LOGINDISABLED MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SORT SPECIAL-USE THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN X-RENAME XLIST
Yahoo/AOL (Verizon)
* CAPABILITY IMAP4rev1 IDLE NAMESPACE QUOTA ID XLIST CHILDREN UIDPLUS MOVE CONDSTORE ESEARCH ENABLE LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE UNSELECT XAPPLEPUSHSERVICE
POP3 (CAPA)
Forward Email
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION ForwardEmail
.
Gmail
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION Gpop
.
+OK
CAPA
TOP
USER
UIDL
SASL PLAIN XOAUTH2
.
Fastmail
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION Cyrus
.
SMTP (EHLO)
Forward Email
250-smtp.forwardemail.net
250-PIPELINING
250-SIZE 52428800
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
Gmail
250-smtp.gmail.com at your service
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
250-SN4PR13CA0005.outlook.office365.com Hello [x.x.x.x]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8
Fastmail
250-smtp.fastmail.com
250-PIPELINING
250-SIZE 78643200
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
Yahoo/AOL (Verizon)
250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41943040
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-STARTTLS
Yksityiskohtaiset testitulokset
IMAP-testitulokset
Gmail:
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER
Outlook.com:
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
iCloud:
* CAPABILITY XAPPLEPUSHSERVICE IMAP4 IMAP4rev1 SASL-IR AUTH=ATOKEN AUTH=PLAIN AUTH=ATOKEN2 AUTH=XOAUTH2
Fastmail: Yhteys aikakatkaistiin. Katso alla olevat huomautukset.
Yahoo:
* CAPABILITY IMAP4rev1 SASL-IR AUTH=PLAIN AUTH=XOAUTH2 AUTH=OAUTHBEARER ID MOVE NAMESPACE XYMHIGHESTMODSEQ UIDPLUS LITERAL+ CHILDREN UNSELECT X-MSG-EXT OBJECTID IDLE ENABLE UIDONLY X-ALL-MAIL X-UIDONLY LIST-EXTENDED LIST-STATUS SPECIAL-USE PARTIAL APPENDLIMIT=41697280
Forward Email:
* CAPABILITY XAPPLEPUSHSERVICE IMAP4rev1 APPENDLIMIT=52428800 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN CHILDREN CONDSTORE ENABLE ID IDLE MOVE NAMESPACE QUOTA SASL-IR SPECIAL-USE UIDPLUS UNSELECT UTF8=ACCEPT XLIST
POP3-testitulokset
Gmail: Yhteys ei palauttanut CAPA-vastausta ilman todennusta.
Outlook.com: Yhteys ei palauttanut CAPA-vastausta ilman todennusta.
iCloud: Ei tuettu.
Fastmail: Yhteys aikakatkaistiin. Katso alla olevat huomautukset.
Yahoo:
+OK CAPA list follows... SASL PLAIN XOAUTH2
Forward Email: Yhteys ei palauttanut CAPA-vastausta ilman todennusta.
SMTP-testitulokset
Gmail:
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
Outlook.com:
250-DSN
iCloud:
250-DSN
Fastmail:
250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER
Yahoo:
250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER
Forward Email:
250-DSN, 250-REQUIRETLS
Huomautuksia testituloksista
Note
Tärkeitä havaintoja ja rajoituksia testituloksista.
-
Fastmailin aikakatkaisut: Fastmail-yhteydet aikakatkaistiin testauksen aikana, todennäköisesti testipalvelimen IP-osoitteen nopeusrajoitusten tai palomuurirajoitusten vuoksi. Fastmail tunnetaan vahvasta IMAP/POP3/SMTP-tuesta dokumentaationsa perusteella.
-
POP3 CAPA -vastaukset: Useat palveluntarjoajat (Gmail, Outlook.com, Forward Email) eivät palauttaneet CAPA-vastauksia ilman todennusta. Tämä on yleinen turvallisuuskäytäntö POP3-palvelimilla.
-
DSN-tuki: Vain Outlook.com, iCloud ja Forward Email mainostavat eksplisiittisesti DSN-tukea SMTP EHLO -vastauksissaan. Tämä ei välttämättä tarkoita, etteivät muut palveluntarjoajat tukisi DSN:ää, mutta he eivät mainosta sitä.
-
REQUIRETLS: Vain Forward Email mainostaa eksplisiittisesti REQUIRETLS-tukea käyttäjälle näkyvällä valintaruudulla. Muut palveluntarjoajat saattavat tukea sitä sisäisesti, mutta eivät mainosta sitä EHLO:ssa.
-
Testiympäristö: Testit suoritettiin AWS EC2 -instanssista (IP: 54.167.216.197 IPv4, 2600:4040:46da:9a00:b19e:3ad4:426c:2f48 IPv6) 22. tammikuuta 2026 klo 02:37 UTC.
Yhteenveto
Forward Email tarjoaa kattavan RFC-protokollatuen kaikissa tärkeimmissä sähköpostistandardeissa:
- IMAP4rev1: 16 tuettua RFC:tä, joissa on dokumentoitu tarkoitukselliset erot
- POP3: 4 tuettua RFC:tä RFC-yhteensopivalla pysyvällä poistolla
- SMTP: 11 tuettua laajennusta, mukaan lukien SMTPUTF8, DSN ja PIPELINING
- Todennus: DKIM, SPF, DMARC, ARC täysin tuettu
- Siirtoturva: MTA-STS ja REQUIRETLS täysin tuettu, DANE osittain tuettu
- Salaus: OpenPGP v6 ja S/MIME tuettu
- Kalenterointi: CalDAV, CardDAV ja VTODO täysin tuettu
- API-käyttö: Täydellinen REST API 39 päätepisteellä suoraan tietokantaan pääsyyn
- iOS-push: Natiiviset push-ilmoitukset sähköpostille, yhteystiedoille ja kalentereille
XAPPLEPUSHSERVICE-palvelun kautta
Keskeiset erot
Tip
Forward Email erottuu ainutlaatuisilla ominaisuuksilla, joita muilla palveluntarjoajilla ei ole.
Mikä tekee Forward Emailista ainutlaatuisen:
- Kvanttiturvallinen salaus – Ainoa palveluntarjoaja, jolla on ChaCha20-Poly1305-salatut SQLite-postilaatikot
- Nollatietoinen arkkitehtuuri – Salasanasi salaa postilaatikkosi; emme voi purkaa sitä
- Ilmaiset omat domainit – Ei kuukausimaksuja omalle domain-sähköpostille
- REQUIRETLS-tuki – Käyttäjälle näkyvä valintaruutu TLS:n pakottamiseksi koko toimitusreitille
- Kattava API – 39 REST API -päätepistettä täydelliseen ohjelmalliseen hallintaan
- iOS-push-ilmoitukset – Natiivinen XAPPLEPUSHSERVICE-tuki välittömään toimitukseen
- Avoin lähdekoodi – Koko lähdekoodi saatavilla GitHubissa
- Tietosuoja painottuu – Ei datan louhintaa, ei mainoksia, ei seurantaa
- Suojaus hiekkalaatikossa: Ainoa sähköpostipalvelu, jossa yksilöllisesti salatut SQLite-postilaatikot
- RFC-yhteensopivuus: Priorisoi standardien noudattamista mukavuuden sijaan (esim. POP3 DELE)
- Täydellinen API: Suora ohjelmallinen pääsy kaikkiin sähköpostitietoihin
- Avoin lähdekoodi: Täysin läpinäkyvä toteutus
Protokollatuki yhteenveto:
| Kategoria | Tukitaso | Yksityiskohdat |
|---|---|---|
| Ydinprotokollat | ✅ Erinomainen | IMAP4rev1, POP3, SMTP täysin tuettu |
| Nykyaikaiset protokollat | ⚠️ Osittainen | IMAP4rev2 osittainen tuki, JMAP ei tuettu |
| Turvallisuus | ✅ Erinomainen | DKIM, SPF, DMARC, ARC, MTA-STS, REQUIRETLS |
| Salaus | ✅ Erinomainen | OpenPGP, S/MIME, SQLite-salaus |
| CalDAV/CardDAV | ✅ Erinomainen | Täysi kalenteri- ja yhteystietojen synkronointi |
| Suodatus | ✅ Erinomainen | Sieve (24 laajennusta) ja ManageSieve |
| API | ✅ Erinomainen | 39 REST API -päätepistettä |
| Push | ✅ Erinomainen | Natiivit iOS push-ilmoitukset |