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 pošto, ki je še ni obdelal, prebrano ali neprebrano, iz zadnjih 24 ur (obdobje iskanja kanala, glejte spodaj).
  2. Prenese besedilo, HTML in priloge do omejitev velikosti (ne celotnega surovega sporočila; glejte Priloge spodaj) in jih razčleni.
  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 (pri pošti kontaktnega obrazca, poslani z vašega lastnega naslova, pa po stranki, ki jo navaja; glejte spodaj).
  5. Naloži priloge v shrambo.
  6. Označi pošto kot obdelano.

Kako se sledi "obdelano"

Delavec za periodično branje vsako vneseno pošto označi s ključno besedo IMAP po meri $HelpStackProcessed in išče pošto brez nje. Vnos nikoli ne spreminja zastavice \Seen (prebrano), zato:

  • pošta v Outlooku, Gmailu ali Apple Mailu ostane neprebrana, dokler je nekdo tam ne prebere (ali v HelpStacku, če je vklopljena sinhronizacija branja), in
  • se pošta, ki jo nekdo odpre v svojem odjemalcu pred naslednjim preverjanjem HelpStacka, vseeno prevzame.

Gmail, Google Workspace, Microsoft 365 in večina sodobnih strežnikov IMAP podpira ključne besede po meri. Če jih strežnik ne podpira, delavec preklopi na zastavico \Seen: prevzame samo neprebrano pošto in jo po vnosu označi kot prebrano.

Na strežniku brez podpore za ključne besede za kanal uporabite namenski nabiralnik. HelpStack se takrat zanaša na \Seen, da se izogne ponovnemu vnosu pošte, zato lahko človek, ki bere nabiralnik, povzroči zamujeno pošto, sinhronizacija branja pa ni na voljo.

Obdobje iskanja

Vsako preverjanje privzeto preišče zadnjih 24 ur. Skrbnik lahko to spremeni za vsak kanal posebej (od 1 do 168 ur) pod Sinhronizacija nabiralnika v nastavitvah povezave kanala. Obdobje nikoli ne seže pred trenutek, ko je bil nabiralnik povezan, zato povezava nabiralnika ne uvozi njegove zgodovine. Import Recent Mail to začetno točko premakne nazaj in za eno uro odpravi obdobje iskanja, da se uvoz lahko zaključi. Če HelpStack nabiralnika ni mogel preveriti dlje od obdobja iskanja (izpad), naslednje preverjanje seže do enega dne pred zadnjim uspešnim preverjanjem, največ 7 dni, da pošta iz tega obdobja ni izpuščena.

Pošta, ki jo je HelpStack že vnesel, se nikoli ne vnese dvakrat: preverjanje po message-id jo preskoči, tudi ko nabiralnik preklopi z nadomestne zastavice \Seen na sledenje s ključno besedo. Ko obstoječi kanal preklopi, se pošta, ki je bila v nabiralniku prebrana že pred preklopom, ne uvozi (vaša ekipa jo je tam verjetno že obravnavala); neprebrana pošta se uvozi kot običajno.

Sinhronizacija prebranega in neprebranega

Privzeto izklopljena. Ko skrbnik vklopi Sinhroniziraj prebrano in neprebrano (Sinhronizacija nabiralnika, za vsak kanal):

  • Iz HelpStacka v nabiralnik: ko pogovor preberete v HelpStacku, se njegova e-pošta v nabiralniku označi kot prebrana; Označi kot neprebrano jo znova označi kot neprebrano. To se izvede v ozadju nekaj sekund pozneje.
  • Iz nabiralnika v HelpStack: HelpStack sledi spremembam v nabiralniku. Ko nekdo tam prebere sporočilo in je nato vsa e-pošta pogovora iz zadnjega obdobja iskanja prebrana, se pogovor v HelpStacku označi kot prebran. Če nekdo eno od teh sporočil v nabiralniku označi kot neprebrano, se pogovor označi kot neprebran. Brez spremembe v nabiralniku se nič ne spremeni, zato pogovor, ki ste ga v HelpStacku označili kot neprebranega, ostane neprebran, na novo prispelo neprebrano sporočilo pa samo po sebi ne spremeni ničesar.

Sledi se le pošti, ki jo je HelpStack vnesel, ko je bilo aktivno sledenje s ključno besedo. Na strežnikih brez podpore za ključne besede sinhronizacija branja ni na voljo.

Sledenje nabiralniku (odgovori, poslani iz poštnega programa)

Za ekipe, ki poleg HelpStacka delajo tudi v Outlooku, Gmailu ali drugem poštnem programu. Privzeto izklopljeno; skrbnik vklopi Sledi dogajanju v nabiralniku (Sinhronizacija nabiralnika, za vsak kanal posebej). HelpStack nato na nekaj minut preveri:

  • Odgovore, poslane iz poštnega programa. HelpStack poišče novo pošto v mapi Poslano (najde jo po standardni oznaki, ne glede na ime, na primer "Sent Items" ali "[Gmail]/Poslano"). Odgovor na e-pošto iz pogovora se prikaže v tem pogovoru z oznako Poslano iz e-pošte, citirana prejšnja sporočila pa so odstranjena. Priloge takega odgovora se ne prenesejo. Če je odgovor novejši od zadnjega sporočila stranke, se pogovor označi kot prebran, čakajoči AI osnutek pa se odloži z oznako Osnutek ni bil poslan, da nihče ne pošlje drugega odgovora. Odloženi osnutek se v uspešnosti AI ne šteje kot zavrnjen.
  • E-pošto, premaknjeno iz mape Prejeto. Ko je vsa e-pošta pogovora premaknjena iz mape Prejeto (v mapo, v arhiv ali izbrisana), se pogovor označi kot prebran. Tako pospravljena e-pošta tudi šteje za obdelano: čakajoči AI osnutek se odloži (prikaže se Osnutek ni bil poslan), pogovor pa zapusti mapo Prejeto v pogledu nabiralnika, dokler stranka ne piše znova.

Nabiralnik se pri tem samo bere: zaradi te nastavitve HelpStack v njem nikoli ničesar ne označi, premakne ali izbriše. (Zapisovanje prebranega in neprebranega nazaj je ločena nastavitev Sinhroniziraj prebrano in neprebrano zgoraj.) Sledi pogovorom, ki so bili dejavni v zadnjih 30 dneh.

Ob vklopu se zažene enkratna uskladitev za teh 30 dni, tako da pogovori, ki so že bili odgovorjeni ali premaknjeni, niso več prikazani kot neprebrani. Znova jo zaženete z gumbom Uskladi zdaj; vrstica ob gumbu pokaže izid zadnje uskladitve. Branje nove pošte se zaradi tega nikoli ne zamakne, tako kot vsa druga preverjanja nabiralnika pa se ustavi, dokler Gmail omejuje nabiralnik.

Premik e-pošte v mapo

Pri e-poštnih kanalih, ki nabiralnik berejo prek IMAP (tudi Gmail), lahko agent e-pošto stranke iz HelpStacka premakne iz mape Prejeto v mapo nabiralnika: Premakni v mapo v meniju ⋮ pogovora ali v vrstici za izbiro v pogledu nabiralnika za več pogovorov enega kanala hkrati (do 100). Izbirnik pokaže lastne mape nabiralnika (nikoli same mape Prejeto), na vrhu in že izbrano mapo, ki je bila na tem kanalu uporabljena nazadnje, pri dolgih seznamih pa iskalno polje. Zgodi se samo, ko nekdo klikne; samodejno se nič ne premika.

E-pošta se premakne, nikoli izbriše, in v novi mapi jo vidite tudi v Outlooku ali Gmailu. Nato pogovor šteje za pospravljenega: označi se kot prebran, čakajoči AI osnutek se odloži (Osnutek ni bil poslan), pogovor zapusti mapo Prejeto v pogledu nabiralnika in dobi oznako Obdelano v e-pošti, dokler stranka ne piše znova. Pogovor, katerega e-pošte ni več v mapi Prejeto (premaknjena prej ali starejša pošta), je naveden kot preskočen. Ko strežnik e-pošte nabiralnik omejuje ali ni dosegljiv, HelpStack to pove in nič ne spremeni.

Obdelano v e-pošti se prikaže pri vsakem odprtem pogovoru, na katerega je bilo po zadnjem sporočilu stranke odgovorjeno iz poštnega programa ali je bil pospravljen iz mape Prejeto, in sicer na seznamu pogovorov, v pogledu nabiralnika in v glavi pogovora. Če se z miško postavite nanjo, vidite, kaj in kdaj. Pogovor ostane odprt; oznaka sama izgine, ko stranka piše znova.

Priloge: omejitve velikosti, hramba in pridobivanje iz nabiralnika

HelpStack iz vsakega e-sporočila prenese samo tisto, kar potrebuje: besedilo, HTML in priloge do 10 MB na prilogo in 25 MB na e-sporočilo. Večja priloga se v pogovoru vseeno prikaže, z imenom, velikostjo in gumbom Pridobi iz nabiralnika; klik prenese to eno datoteko iz vašega nabiralnika in jo nato prikaže kot običajno.

Datoteke prilog ostanejo v shrambi HelpStacka 60 dni. Nato se datoteka odstrani iz shrambe HelpStacka, priloga ostane navedena, Pridobi iz nabiralnika pa jo znova pridobi iz vašega nabiralnika (pridobljena kopija ostane še 7 dni). Če je bilo e-sporočilo medtem izbrisano iz nabiralnika, priloga prikaže V nabiralniku ni več na voljo. E-sporočilo, ki ste ga v Gmailu arhivirali, se še vedno najde. Če HelpStack do nabiralnika trenutno ne more dostopati (na primer po spremembi gesla), se prikaže obvestilo in lahko poskusite znova pozneje; priloga se takrat ne označi kot nedosegljiva.

Ko Gmail omeji nabiralnik

Gmail omejuje, koliko lahko nabiralnik na dan prenese prek IMAP. Ko sporoči, da je nabiralnik presegel to omejitev, HelpStack preverjanje tega nabiralnika začasno ustavi (najprej za 30 minut, ob ponovitvi dlje, največ za 6 ur), namesto da bi poskušal vsako minuto, kar bi omejitev samo podaljševalo. Zavihek Povezava kanala takrat prikaže Gmail je začasno omejil ta nabiralnik; ponovni poskus ob HH:MM. Nobena pošta se ne izgubi: ko se preverjanje nadaljuje, HelpStack prevzame vse, kar je prispelo med premorom. Do takrat tudi pridobivanje prilog iz tega nabiralnika ni mogoče. Drugi ponudniki e-pošte, ki sporočijo enako vrsto omejitve, so obravnavani enako.

Kontaktni obrazci, poslani z vašega lastnega naslova

Kontaktni obrazci na spletnih straneh pogosto pošiljajo pošto z naslova vašega lastnega nabiralnika, obiskovalca pa navedejo v Reply-To ali v besedilu sporočila. Ko je naslov From dohodne pošte lasten naslov kanala, jo HelpStack obravnava kot posredovano in po vrsti uporabi:

  1. prvi naslov v Reply-To, ki ni vaš, ali
  2. vrstico Email: v besedilu sporočila.

Pogovor in vsak odgovor gresta nato tej stranki. Njeno ime se vzame iz vrstice Name: (ali Ime in priimek:) v besedilu, sicer iz prikaznega imena v Reply-To, sicer iz naslova. Če ni mogoče najti ničesar, se pošta vnese kot doslej.

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_ATTACHMENT_BYTES10 MBVečje priloge se ne prenesejo samodejno; agenti jih pridobijo iz nabiralnika
EMAIL_MAX_MESSAGE_ATTACHMENT_BYTES25 MBNajvečja skupna velikost prilog, prenesenih na e-sporočilo; ostale se pridobijo na zahtevo
EMAIL_ATTACHMENT_RETENTION_DAYS60Dnevi, ko datoteke prilog ostanejo v shrambi; nato se pridobijo iz nabiralnika na zahtevo
EMAIL_MAX_AGE_DAYS5Prezre pošto, starejšo od tega števila dni
IMAP_ALLOW_SELF_SIGNED—Samo 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#