Stránka 4 z 4
Napsal: 26 led 2024, 13:09
od Celeron
Už to zase chodí, cesta Google - Volny - Tmobil. Na podpoře nenašli na službě Email do SMS nic špatně nastavenýho. Doporučili mi vypnout a zapnout mobil.

Kupodivu to zabralo.
Napřímo to do T-Mobilu stále nejde, stále chyba autentizace.
Technik mi říkal, že problém asi je, že když to jde napřímo, tak je tam
Kód: Vybrat vše
Date/Time: January 01, 1970 03:00:00
Asi si email knihovna Wemosu neporadí s načtením dat z NTP serveru. Když to jde přes Google, tak ten to doplní správně.
Ještě zkusím z Google účtu, kde je Wemos, poslat email na druhej účet na Google a odtamtud s filtrem na T-Mobil. Podle mě to je stejný, jako kdyby tam byl jako mezičlánek Volny.
Napsal: 26 led 2024, 14:08
od pocitujlasku
tak si daj vypisat aky datum a cas ma ten wemos. ja si ho synchronizujem cez moj vlastny system, ale cez ntp by nemal byt problem, jedine, ze este v case odosielania neprebehla synchronizacia casu.
Napsal: 26 led 2024, 15:09
od Celeron
Cesta Google - Volny - Tmobil chodí, tak to tak nechám být. Zkoušel jsem cestu Google účet Wemos - Google druhý účet a tam nastavit fltr přeposílání na
603xxxxxx@sms.t-mobile.cz a nechodí to. Vlastně z jakýhokoliv účtu Google nejde nic poslat do T-Mobilu. Už mě to nebaví dál zkoumat. Jsou jiný zábavnější činnosti.

Napsal: 26 led 2024, 16:20
od Valdano
Oprava viz níže.
Napsal: 26 led 2024, 16:28
od pocitujlasku
Valdano: prispevky citaj od posledneho, trocha nizsie ma log, kde autorizacia je ok, len mu chybal email odosielatela.
Predpokladam, ze ten doplnil a zacal mu papulovat, ze je zly datum
Napsal: 26 led 2024, 16:32
od Valdano
Tak proč si pro SMTP nenastaví datum a čas na nějakou hodnotu třeba dnešní datum a čas natvrdo v programu?
Mělo by to být nějak tak jako je viz níže část kódu. Píšu to jen naslepo bez zkoušení. Takže případné chybičky v syntaxi si opravte.
Kód: Vybrat vše
// vypnuti NTP
#define DISABLE_NTP_TIME
Session_Config config;
SMTP_Message message;
SMTPSession smtp;
float gmtOffset = 1.0;
struct tm dt;
// vyplneni casove znacky
memset(&dt, 0, sizeof(struct tm));
dt.tm_year = 124; // rok 2024 - 1900 = 124
dt.tm_mon = 0; // mesic leden = 0 az prosinec = 11
dt.tm_mday = 26; // den 1 az 31
dt.tm_hour = 10; // hodina
dt.tm_min = 11; // minuta
dt.tm_sec = 12; // vterina
// nastaveni casove znacky pro SMTP session
smtp.setSystemTime(mktime(&dt), gmtOffset);
// parametry pro pripojeni na SMTP server a pro prihlaseni
config.login.email = "prihlasovaci jmeno do t-zone";
config.login.password = "prihlasovaci heslo do t-zone";
config.login.user_domain = "127.0.0.1";
config.server.host_name = "smtp.t-email.cz";
config.server.port = 465;
// parametry pro SMTP zpravu
message.author.name = "Wemos Celeron";
message.author.email = "prihlasovaci jmeno do t-zone";
message.sender.name = "Wemos Celeron";
message.sender.email = "603xxxxxx@t-mobile.cz";
message.subject = "Subjekt zpravy od Wemosu";
message.text.content = "Toto je telo zpravy.";
message.addRecipient("Mobil Celeron", "603xxxxxx@t-mobile.cz");
atd.
Napsal: 26 led 2024, 18:18
od Celeron
pocitujlasku píše:Valdano: prispevky citaj od posledneho, trocha nizsie ma log, kde autorizacia je ok, len mu chybal email odosielatela.
Predpokladam, ze ten doplnil a zacal mu papulovat, ze je zly datum
Přesně tak. V programu mám sice:
Kód: Vybrat vše
config.time.ntp_server = F("pool.ntp.org,time.nist.gov");
config.time.gmt_offset = 1;
config.time.day_light_offset = 0;
Ale datum a čas je stále nulovej, tedy 1970.
Zajímavý je, že pokud email odesílám přes Google se čas z NTP načte, protože v hlavičce emailu vidím, že když dám jinej config.time.gmt_offset než 1 (středoevropskej zimní čas), tak se čas odeslání posune podle zadanýho offsetu o příslušný počet hodin.
Zkusil jsem zadat epochovej čas ručně, nejdříve
setTime(1706288217550);
a potom znova zkompilovat s
timeClient.setTime(1706288217550);
ale ani s jedním žádnej výsledek. Buď to dělám blbě, nebo to nefunguje.
Zatím jsem program upravil aby se přes WiFiMulti připojil na jakoukoliv síť co kde mám a aby po odeslání emailu skončil v DeepSleep ze kterýho ho dostane signál RST.
Napsal: 26 led 2024, 18:33
od Celeron
Valdano, už jsem tu dvakrát psal, že:
config.login.email = "prihlasovaci jmeno do t-zone";
a
message.author.email = "prihlasovaci jmeno do t-zone";
nefungují, autentizace sice projde OK ale vyletí to na "address is not valid" musí tam být korektní email adresa. Tu Wemos nemá a pokud použiju nějakou pseudo, tak to vyletí ještě dřív na autentizaci. Jak je to vyřešený když se Wemos připojí přes Google mě není jasný, email adresu přidělí až Goohle. Možná ten jeho šestnáctiznakovej AP code zadanej do config.login.password.
Napsal: 26 led 2024, 18:35
od Valdano
Tak použijte variantu s emailem, při které vám login přímo z Wemosu na smtp.t-email.cz prochází a nehlásí to chybnou emailovou adresu a hlásí to chybu jen s časem.
Rozchodil jste vůbec takovou variantu přímo z Wemosu na smtp.t-email.cz a nebo jste takovou variantu nerozchodil?
Pokud jste takovou variantu nerozchodil a pro přihlášení musí být jako jméno uveden email tak i pro přihlášení zkuste použít tu emailovou adresu jako je cílová pro mobil tj.
603xxxxxx@t-mobile.cz a k ní jako heslo použijte heslo do t-zone nebo jen prázdný řetězec.
Výpis hlášení jen o chybném čase zprávy jsem tu v celém tématu od Vás neviděl a to hlášení "sender Email address is not valid" chybný čas rozhodně způsobovat nemůže.
Pokud jste už rozchodil variantu kdy je "Authentication successful", současně není hlášení "sender Email address is not valid" a je jen nějaké hlášení o chybné časové značce zprávy pak už máte jen problém s tím časem, a to by mělo jít vyřešit nastavením časové značky pro SMTP session viz příklad níže a je dobré také vypnout použití NTP.
Kód: Vybrat vše
// toto vypnuti pouziti NTP dat na uplny zacatek zdrojaku
// tedy nad specifikace #include
#define DISABLE_NTP_TIME
#include ...
#include ...
#include ...
SMTPSession smtp;
float gmtOffset = 1.0;
struct tm dt;
// vyplneni casove znacky
memset(&dt, 0, sizeof(struct tm));
dt.tm_year = 124; // rok 2024 - 1900 = 124
dt.tm_mon = 0; // mesic leden = 0 az prosinec = 11
dt.tm_mday = 26; // den 1 az 31
dt.tm_hour = 10; // hodina
dt.tm_min = 11; // minuta
dt.tm_sec = 12; // vterina
// nastaveni casove znacky pro SMTP session
smtp.setSystemTime(mktime(&dt), gmtOffset);