Siuntimas elektroniniu paštu tiesiogiai per pašto serverį, jungiantis per "Microsoft 365" (Microsoft Graph API).
Siuntimo per MS365 administravimas.
(nuo 124 RIVILE GAMA versijos)
Ši funkcija leidžia siųsti laiškus jungiantis prie "Microsoft 365" naudojant oAuth2 (prisijungimo tipai: Authorization Code Flow, Client Credentials Flow) siuntimui naudojamos Microsoft Graph API užklausos. SMTP protokolas nenaudojamas, vartotojų pašto slaptažodžiai sistemoje nesaugomi.
Naudojimo reikalavimai :
Sintaksė
F_MAIL_MS365(tcTo, tcSubject, tcBodyPlain, [tcFiles], [tcBodyHTML], [tcCC], [tcBCC], [tcFrom], [tcModul])
Grąžina
.T. - jei išsiųsta be klaidų, priešingu atveju .F.
Parametrai
| Parametras | Aprašymas | Formatas |
|---|---|---|
| tcTo | el. pašto adresas - gavėjas. Kelis gavėjus galima nurodyti per kabliataškį | C |
| tcSubject | laiško pavadinimas | C |
| tcBodyPlain | laiško turinys paprastu tekstu | C |
| tcFiles | prisegami failai išvardinti per kabliataškį | C |
| tcBodyHTML | laiško turinys HTML formatu (formatizuotas tekstas). Jei nurodytas, turi pirmenybę prieš tcBodyPlain | C |
| tcCC | laiško kopijos gavėjas. Kelis gavėjus galima nurodyti per kabliataškį | C |
| tcBCC | laiško kopijos nematomas gavėjas. Kelis gavėjus galima nurodyti per kabliataškį | C |
| tcFrom | siuntėjo adresas (standartiškai imamas iš parametro SS_SMTP_VART). Galima sintaksė su vardu: Jonas Jonaitis <jonas@imone.lt> |
C |
| tcModul | modulis pagal kurį imami prisijungimo duomenys iš parametrų sąrašo | C |
Siuntėjo (tcFrom) parinkimo taisyklės:
Norint pamatyti klaidą, reikia vartotojui uždėti SISTEMOS INIT‘ą, kuris techniškai parodo visą pilną klaidos pranešimą.
titi_pagr.smtp_server="EXECSCRIPT("
titi_pagr.smtp_server=titi_pagr.smtp_server+'[LPARAMETERS _adresas,_antraste,_tekstas,_failas]+CHR(13)+CHR(10)+'
titi_pagr.smtp_server=titi_pagr.smtp_server+'[_klaida=""]+CHR(13)+CHR(10)+'
titi_pagr.smtp_server=titi_pagr.smtp_server+'[lRet=f_mail_ms365(_adresas,_antraste,_tekstas,_failas)]+' && Ideti savo siuntimo funkcija
titi_pagr.smtp_server=titi_pagr.smtp_server+'CHR(13)+CHR(10)+'
titi_pagr.smtp_server=titi_pagr.smtp_server+'[=IIF(!EMPTY(_klaida),f_info(_klaida,.T.),"")]+CHR(13)+CHR(10)+'
titi_pagr.smtp_server=titi_pagr.smtp_server+'[return lRet]+CHR(13)+CHR(10)+'
titi_pagr.smtp_server=titi_pagr.smtp_server+"[],_adresas,_antraste,_tekstas,_failas)"
Pavyzdžiai
f_mail_ms365("info@testas.lt","Antraštė","Laiško tekstas","c:\test.txt")'
Pastaba 1
Sistemos INIT-e nurodomas prisijungimo prie serverio metodas bei prisijungimo duomenys:
MS365_INIT(tcClient_id, tcTenant_id, tcLogin_type, [tlnTokenStorage], [tcClient_secret], [tcCert_thumbprint], [tcCert_file], [tcCert_passw], [tcScope], [tnAuth_port])
| Parametras | Aprašymas | Formatas |
|---|---|---|
| tcClient_id | Client ID | C |
| tcTenant_id | Tenant ID (nenurodžius naudojama reikšmė common) |
C |
| tcLogin_type | prisijungimo tipas: Auth_Code, Cred_Secret, Cred_Cert. Nenurodžius naudojamas Auth_Code | C |
| tlnTokenStorage | prisijungimo raktų saugojimas (galioja tik Auth_Code): 0 arba .F. - raktai nesaugomi, jungiamasi kiekvieno seanso metu; 1 arba .T. - saugoma „Windows Credential Manager“ saugykloje; 2 - saugoma „Windows Credential Manager“ saugykloje atskirai kiekvienai įmonei | N / L |
| tcClient_secret | Secret raktas (galioja tik Cred_Secret) | C |
| tcCert_thumbprint | Sertifikato atspaudo ID (galioja tik Cred_Cert) | C |
| tcCert_file | Sertifikato failas su takeliu (galioja tik Cred_Cert) | C |
| tcCert_passw | Sertifikato failo slaptažodis | C |
| tcScope | teisių sritis (scope). Numatytosios reikšmės: Auth_Code - offline_access mail.send, Cred_Secret ir Cred_Cert - https://graph.microsoft.com/.default. Keisti reikia tik išskirtiniais atvejais |
C |
| tnAuth_port | lokalus prievadas patvirtinimui iš naršyklės gauti (galioja tik Auth_Code). Numatytoji reikšmė 55110. Turi sutapti su aplikacijos Redirect URI, pvz. http://localhost:55110/ |
N |
Kokius prisijungimo metodus galima naudoti:
Naudojami Microsoft Graph leidimai:
Rekomendacijos:
ms365_init("95bac988-e3bf-4349-9f05-e9cfb573c588","458c5b55-27b4-4b8d-ad7e-55f173620ca8","Auth_Code",.T.)ms365_init("95bac988-e3bf-4349-9f05-e9cfb573c588","458c5b55-27b4-4b8d-ad7e-55f173620ca8","Cred_Secret",.F., "wpT8Q~sSJAeyQFmsG~-FrEZcUetFUdRniqXX6au-")tcCert_thumbprint kai naudojama siunčiant laiškus automatizuotai arba kai siunčia visa įmonė vienu vardu. Pavyzdžiui: ms365_init("95bac988-e3bf-4349-9f05-e9cfb573c588","458c5b55-27b4-4b8d-ad7e-55f173620ca8","Cred_Cert",,,"3D0DD39100FDA370218440DD5BB7E9B19AE455FE")Pastaba 2
Naudojant MS365 kaip pagrindinį laiškų siuntimo metodą, sistemos INIT-e turi būti užprogramuota:
MS365_INIT(tcClient_id, tcTenant_id, tcLogin_type, [tlnTokenStorage], [tcClient_secret], [tcCert_thumbprint], [tcCert_file], [tcCert_passw])
titi_pagr.smtp_server='f_mail_ms365(_adresas,_antraste,_tekstas,_failas)'
Pastaba 3
Naudojant MS365 kaip pagrindinį laiškų siuntimo metodą, norint naudoti šabloną su stiliumi, sistemos INIT-e galima užprogramuoti:
MS365_INIT(tcClient_id, tcTenant_id, tcLogin_type, [tlnTokenStorage], [tcClient_secret], [tcCert_thumbprint], [tcCert_file], [tcCert_passw])
titi_pagr.smtp_server='f_mail_ms365(_adresas,_antraste,"",_failas,STRTRAN(F_FILETOSTR("email_sign.html"),"[[BODY]]",STRTRAN(xml_encode(_tekstas)," ","<br>")))'
Pastaba 4
Siunčiant laiškus funkcijos f_mail_ms365() pagalba, yra galimybė nurodyti laiško kopijos gavėjų adresus.
Jie aprašomi parametre SS_SMTP_KOP.
Siunčiant per bendras pašto dėžutes arba naudojant metodus Cred_Secret arba Cred_Cert, parametre SS_SMTP_VART reikia nurodyti vartotojo vardą, kuriuo bus vykdomas siuntimas (parametre užpildome tik vardą). Tas vartotojas turi turėti teisę siųsti laiškus naudojant Sistemos INIT’e nurodytus prisijungimo duomenis.
Pastaba 5
Saugumo informacija administratoriams:
login.microsoftonline.com ir graph.microsoft.com per HTTPS. Rivile ar trečiųjų šalių serveriai siuntime nedalyvauja.tlnTokenStorage: „Windows Credential Manager“ saugykloje arba Rivile GAMA duomenų bazėje.