Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Posílání gmailu přes příkazovou řádku s OAuth2

Ahojte,
občas využívám možnosti posílání mailů přes program v příkazové řádce Windows - ať už Swithmail nebo SendSMTP nebo cokoliv jiného podobného. Hodí se to v různých automatizačních dávkách, kdy na závěr pošle log.
Teď řeším situaci, kdy musím využít SMTP server gmailu, aniž bych ovšem v gmailu povolil přístup pro "Less secure apps" (sice to prozatím funguje ale brzo to Google zařízne).

A to je problém. Nenašel jsem zatím žádnou utilitku pro příkazovou řádku, která by to uměla. Čistě náhodou - neřešil jste to už někdo někdy a nepřišli jste na řešení?

Autoři populárních smtp mail senderů vesměs tvrdí, že "by to šlo naprogramovat ale byla by s tím spousta práce a protože za tím stojí velký hnusná Google, tak se na to můžou vykašlat".

Děkuji.

Předmět Autor Datum
Takže fakt to musí být SMTP velkýho hnusnýho Googlu, přes to nejede vlak, jo? Jinak bych to řešil o…
host 03.02.2021 13:39
host
Bohužel je to tak. Půjdou přes to citlivá data, zadavatel trvá pouze na službách Google. Citlivá dat…
Moas 03.02.2021 13:43
Moas
Citlivá data jdou před odesláním zašifrovat...
host 03.02.2021 16:05
host
Jestli ti nevadi Java, tak ti to napisu...:-)
MaSo 03.02.2021 17:13
MaSo
Jestli to půjde volat z příkazové řádky a bude to umět posílat přílohy a diakritiku a víceřádkové ma…
Moas 03.02.2021 21:40
Moas
Večer na to mrknu, jak moc by to bylo složité...
MaSo 04.02.2021 09:07
MaSo
Neni to nic složitého, zkus sepsat, co všechno by to mělo umět. Pokud stačí, poslat mail v češtině s…
MaSo 04.02.2021 14:26
MaSo
to je maso tohle :D Ano, stačí poslat mail v češtině s jednou přílohou. Mail stačí plaintext ale aby…
Moas 04.02.2021 19:48
Moas
Tak jo, Alpha verze (neosetrene vyjimky - nexistujici soubor s prilohou, poradi parametru v CLI). h…
MaSo 05.02.2021 09:13
MaSo
Vřelý dík, ozkouším. Resp. snažím se ozkoušet ale prosímtě kde splaším ty řetězce pro clientId, clie…
Moas 05.02.2021 21:22
Moas
Však to máš priamo v nadpise :) https://en.wikipedia.org/wiki/OAuth Myslím, že to všetko nastavíš v…
pozorovateľ 05.02.2021 21:34
pozorovateľ
No, neni to uplne easy ziskat...:-) Zitra pisnu jak na to...
MaSo 05.02.2021 21:51
MaSo
https://plswiderski.medium.com/google-api-authentication-with-oauth-2-on-the-example-of-gmail-a103c8…
MaSo 07.02.2021 11:15
MaSo
Huh, tohle vypadá na dlouho... nějak se tím prohryžu, díky!
Moas 08.02.2021 09:13
Moas
Kdyby sis nevedel rady, ozvi se... Jinak jsem to uz dodelal do podoby, za kterou se nemusim stydet.… poslední
MaSo 08.02.2021 09:22
MaSo

Tak jo, Alpha verze (neosetrene vyjimky - nexistujici soubor s prilohou, poradi parametru v CLI).

https://uloz.to/file/F0P3kgZtxaZK/gmailcli-zip

Predpoklady:
1) v souboru gmailcli.properties jsou udaje k oAuth (momentalne funkcni testovaci ucet testicek69@gmail.com - to je ucet, ze ktereho budou maily odchazet), soubor musi byt ve stejnem adresari jako GmailCli-1.0.0.jar
2) potrebujes mit nainstalovano JRE alespon 1.8 (zjistis pres java -version)

Pouziti z komandlajny (poradi parametru musi byt dodrzeno):

java -jar GmailCli-1.0.0.jar KOMU PREDMET TEXT CESTA_K_PRILOZE(nepovinne)

Priklad (soubor a.txt je ve stejnem adresari jako jar):

java -jar GmailCli-1.0.0.jar nekdo@neco.com Subject "1. řádek%n2. řádek" a.txt

Pripadne bugy opravim. Enjoy!

Vřelý dík, ozkouším. Resp. snažím se ozkoušet ale prosímtě kde splaším ty řetězce pro clientId, clientSecret, access token a refresh token?
Dosud jsem žil v době normálního jména a hesla pro SMTP, tohle vypadá nějak nechutně....

https://plswiderski.medium.com/google-api-authentication-with-oauth-2-on-the-example-of-gmail-a103c897fd98

Tady je popis jak ziskat access a refresh token. V kroku "Confirm permissions request" nemusis pouzivat SoapUI postaci curl:

curl -X POST https://www.googleapis.com/oauth2/v4/token \
   -d client_id=tvoje_client_id \
   -d client_secret=tvuj_client_secret \
   -d code=kod_ziskany_z_redirectu_na_localhost \
   -d grant_type=authorization_code \
   -d redirect_uri=http://localhost

Zpět do poradny Odpovědět na původní otázku Nahoru