Zasílání Mailu v asychronním webserveru

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
OtikM
Příspěvky: 29
Registrován: 09 dub 2021, 18:52

Zasílání Mailu v asychronním webserveru

Příspěvek od OtikM » 10 čer 2024, 14:08

Ahoj,
na zasílání používám knihovnu EmailSender.h. V sychronním je vše OK v asychronním, kde využívám knihovny ESPAsyncTCP.h, ESPAsyncWebServer.h nefunguje zasílání. Používám ESP8266. Někde jsem četl, že potřebuji samostatné vytvořit vlákno na zaslání, ale jak to udělat?
Je vůbec možné použít EmailSender.h v asynchronním webserveru?

OtikM
Příspěvky: 29
Registrován: 09 dub 2021, 18:52

Re: Zasílání Mailu v asychronním webserveru

Příspěvek od OtikM » 13 čer 2024, 06:34

Ahoj,
zkoušel jsem použit jinou knihovnu, která by měla umět asynchronní zasílání mailu.
Bohužel mi to hlásí chybu
In file included from C:\Users\U04589\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2Card.h:26:0,
from C:\Users\U04589\AppData\Local\Arduino15\libraries\SD\src/utility/SdFat.h:29,
from C:\Users\U04589\AppData\Local\Arduino15\libraries\SD\src/SD.h:20,
from c:\Users\U04589\Documents\Arduino\libraries\ESP_Mail_Client-3.4.19\src/./ESP_Mail_FS.h:121,
from c:\Users\U04589\Documents\Arduino\libraries\ESP_Mail_Client-3.4.19\src/extras/RFC2047.h:8,
from c:\Users\U04589\Documents\Arduino\libraries\ESP_Mail_Client-3.4.19\src/ESP_Mail_Client.h:35,
from C:\Users\U04589\Documents\Arduino\sketch_jun10a\sketch_jun10a.ino:4:
C:\Users\U04589\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2PinMap.h:524:2: error: #error Architecture or board not supported.
#error Architecture or board not supported.
^
exit status 1

Compilation error: exit status 1

Kód: Vybrat vše

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <ESP_Mail_Client.h>


// Nastavení připojení k Wi-Fi
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";


// Nastavení serveru SMTP
const char* smtpServer = "smtp.example.com";
const int smtpPort = 465;
const char* emailSenderAccount = "you@example.com";
const char* emailSenderPassword = "YOUR_EMAIL_PASSWORD";
const char* emailRecipient = "recipient@example.com";


AsyncWebServer server(80);
SMTPData smtpData;

void sendEmail() {
    smtpData.setLogin(smtpServer, smtpPort, emailSenderAccount, emailSenderPassword);
    smtpData.setSender("ESP8266", emailSenderAccount);
    smtpData.setPriority("High");
    smtpData.setSubject("Test Email from ESP8266");
    smtpData.setMessage("Hello, this is a test email sent from ESP8266!", false);
    smtpData.addRecipient(emailRecipient);


    if (!MailClient.sendMail(smtpData)) {
        Serial.println("Error sending Email, " + MailClient.smtpErrorReason());
    } else {
        Serial.println("Email sent successfully");
    }


    smtpData.empty();
}


void setup() {
    Serial.begin(9600);
    WiFi.begin(ssid, password);


    while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("Connecting to WiFi...");
    }


    Serial.println("Connected to WiFi");


    server.on("/sendEmail", HTTP_GET, [](AsyncWebServerRequest *request){
        sendEmail();
        request->send(200, "text/plain", "Email sent!");
    });


    server.begin();
}


void loop() {
    // Žádná smyčka není potřeba, vše je řízeno asynchronně
}
Nevím co s tím, prosím poraďte.
Předem díky

Uživatelský avatar
Diego
Příspěvky: 185
Registrován: 23 črc 2017, 09:43
Kontaktovat uživatele:

Re: Zasílání Mailu v asychronním webserveru

Příspěvek od Diego » 13 čer 2024, 11:34

Knihovna nepodporuje desku, je to v ty chybe napsany ;)
https://arze.cz - ARduino Zapojení Elektronika

OtikM
Příspěvky: 29
Registrován: 09 dub 2021, 18:52

Re: Zasílání Mailu v asychronním webserveru

Příspěvek od OtikM » 13 čer 2024, 13:45

OK :D , ale jak to udělat. To nikdo nepoužívá asynchronní webserver na ESP8266?

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host