HelpStackDokumenti

Integracije

E-poštni kanal

Povežite nabiralnik kot kanal HelpStack: dohodna pošta se periodično bere prek IMAP, odgovori pa se pošiljajo prek SMTP.

Hitre dejstvice#

Vrsta kanalaEMAIL
DohodnoDelavec za periodično branje prek IMAP (npm run email:poll)
OdhodnoSMTP prek nodemailer (poverilnice kanala)
PoverilniceShranjene šifrirano (AES-256-GCM) po kanalu
Varnost transportaIMAP prek TLS
Interval branja~10s (razvoj) / ~60s (produkcija)

Dohodno: periodično branje prek IMAP#

Delavec za periodično branje se poveže na IMAP strežnik (TLS) vsakega aktivnega kanala EMAIL in v vsakem ciklu:

  1. Pridobi nedavno neobdelano pošto.
  2. Razčleni besedilo, HTML in priloge.
  3. Odpravi podvajanja po message-id + predogledu (da se ista pošta ne vnese dvakrat).
  4. Ustvari pogovor, zaključen po e-poštnem naslovu pošiljatelja.
  5. Naloži priloge v shrambo.
  6. Označi pošto kot obdelano.

Kako se sledi "obdelano"

Delavec za periodično branje daje prednost ključni besedi IMAP po meri $HelpStackProcessed, ki pusti zastavico \Seen nedotaknjeno (tako sporočilo v drugih odjemalcih izgleda še vedno neprebrano). Če strežnik ne podpira ključnih besed po meri, vrne na zastavico \Seen.

Priporočilo: za kanal uporabite namenski nabiralnik. Če strežnik ne podpira ključnih besed po meri, se HelpStack zanaša na \Seen, da se izogne ponovnemu vnosu pošte — souporaba nabiralnika s človeškim bralcem (ki označi stvari kot prebrane/neprebrane) lahko povzroči zamujeno ali podvojeno vnašanje.

Razvrščanje v niti

Informacije o razvrščanju v niti se shranjujejo v metapodatkih pogovora, da se odgovori pravilno razvrstijo:

Polje metapodatkovVir
emailSubjectZadeva dohodne pošte
emailMessageIdGlava Message-ID
emailReferencesVeriga References / In-Reply-To

Zagon delavca za periodično branje

npm run email:poll

Ta delavec zaženite skupaj z aplikacijo (in delavcem čakalne vrste sporočil), da se dohodna e-pošta vnese. V produkciji bere vsaj enkrat na ~60 s; v razvoju vsaj enkrat na ~10 s.

Nastavljive okoljske spremenljivke#

SpremenljivkaPrivzetoNamen
EMAIL_MAX_BODY_BYTES~100 KBNajvečja velikost telesa, ki se vnese; daljša telesa so skrajšana
EMAIL_MIN_ATTACHMENT_BYTES~1 KBPriloge, manjše od tega, so preskočene (filtrira slikovne piksle za sledenje)
EMAIL_MAX_AGE_DAYS5Prezre pošto, starejšo od tega števila dni
IMAP_ALLOW_SELF_SIGNEDSamo za razvoj — sprejme samopodpisane certifikate TLS za IMAP

Šifriranje#

Poverilnice IMAP/SMTP vsakega kanala so shranjene šifrirano z AES-256-GCM. Nadzorna plošča ponuja gumb Preizkusi, ki potrdi konfigurirane poverilnice (vzpostavi in avtenticira povezavo) preden jih shranite/zaupate jim.

Preverjena polja poverilnic za e-poštni kanal (credentials):

host, port, username, password, from,
secure?, imapHost?, imapPort?, imapSecure?, imapAllowSelfSigned?

Odhodno: SMTP prek nodemailer#

Odgovori se pošiljajo prek SMTP z uporabo nodemailer s lastnimi poverilnicami SMTP kanala: host, port, secure, user, pass in from. Odhodno pošiljanje obravnavajo pošiljatelji čakalne vrste sporočil.

SMTP kanala vs. sistemski SMTP za obvestila

To sta ločeni e-poštni poti — ne zamešajte ju:

SMTP kanalaSistemski SMTP za obvestila
NamenOdgovori strankam na kanalu EMAILE-poštna sporočila platforme/sistema
PoverilnicePo kanalu, šifriranoOkoljske spremenljivke
Konfigurirano prekNastavitve kanalaSMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_SECURE, SMTP_FROM
Privzeti pošiljateljPolje from kanalanoreply@helpstack.eu

Sistemska e-poštna obvestila (npr. sporočila o računu/sistemu) vedno uporabljajo SMTP, konfiguriran prek okoljskih spremenljivk, in privzetega pošiljatelja noreply@helpstack.eu, neodvisno od katerega koli kanala.

Sorodne teme#