From 5c6f8dbc38816f6ec11b39a0bcdc0de252727a88 Mon Sep 17 00:00:00 2001 From: suwatchai Date: Sun, 12 Apr 2020 04:53:37 +0700 Subject: [PATCH] Remove the WiFi reconnection and its status checking. --- README.md | 2 +- keywords.txt | 24 +++---- library.properties | 2 +- src/ESP32_MailClient.cpp | 136 ++------------------------------------- src/ESP32_MailClient.h | 15 ++--- 5 files changed, 26 insertions(+), 153 deletions(-) diff --git a/README.md b/README.md index e6a96e8..bd4cb63 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Mail Client Arduino Library for ESP32 v 2.1.3 +# Mail Client Arduino Library for ESP32 v 2.1.4 This library allows ESP32 to send Email with/without attachment and receive Email with/without attachment download via SMTP and IMAP servers. diff --git a/keywords.txt b/keywords.txt index c41d87f..81b7ee9 100644 --- a/keywords.txt +++ b/keywords.txt @@ -31,9 +31,9 @@ addFlag KEYWORD2 removeFlag KEYWORD2 -setClock KEYWORD2 -getUnixTime KEYWORD2 -getTimestamp KEYWORD2 +setClock KEYWORD2 +getUnixTime KEYWORD2 +getTimestamp KEYWORD2 getYear KEYWORD2 getMonth KEYWORD2 getDay KEYWORD2 @@ -57,18 +57,18 @@ setLogin KEYWORD2 setSTARTTLS KEYWORD2 setDebug KEYWORD2 setFolder KEYWORD2 -setMessageBufferSize KEYWORD2 -setAttachmentSizeLimit KEYWORD2 -setSearchCriteria KEYWORD2 +setMessageBufferSize KEYWORD2 +setAttachmentSizeLimit KEYWORD2 +setSearchCriteria KEYWORD2 setSaveFilePath KEYWORD2 -setFechUID KEYWORD2 -setDownloadAttachment KEYWORD2 -setHTMLMessage KEYWORD2 -setTextMessage KEYWORD2 -setSearchLimit KEYWORD2 +setFechUID KEYWORD2 +setDownloadAttachment KEYWORD2 +setHTMLMessage KEYWORD2 +setTextMessage KEYWORD2 +setSearchLimit KEYWORD2 setRecentSort KEYWORD2 setReadCallback KEYWORD2 -setDownloadReport KEYWORD2 +setDownloadReport KEYWORD2 isHeaderOnly KEYWORD2 getFrom KEYWORD2 getFromCharset KEYWORD2 diff --git a/library.properties b/library.properties index 7e3554c..6ff993e 100644 --- a/library.properties +++ b/library.properties @@ -1,6 +1,6 @@ name=ESP32 Mail Client -version=2.1.3 +version=2.1.4 author=Mobizt diff --git a/src/ESP32_MailClient.cpp b/src/ESP32_MailClient.cpp index b33e7d5..2e82aa4 100644 --- a/src/ESP32_MailClient.cpp +++ b/src/ESP32_MailClient.cpp @@ -1,7 +1,7 @@ /* - *Mail Client Arduino Library for ESP32, version 2.1.3 + *Mail Client Arduino Library for ESP32, version 2.1.4 * - * April 11, 2020 + * April 12, 2020 * * This library allows ESP32 to send Email with/without attachment and receive Email with/without attachment download through SMTP and IMAP servers. * @@ -98,39 +98,6 @@ bool ESP32_MailClient::readMail(IMAPData &imapData) ESP32MailDebug(String(imapData._port).c_str()); } - if (WiFi.status() != WL_CONNECTED) - WiFi.reconnect(); - - //Try to reconnect WiFi if lost connection - if (WiFi.status() != WL_CONNECTED) - { - uint8_t tryCount = 0; - WiFi.reconnect(); - while (WiFi.status() != WL_CONNECTED) - { - tryCount++; - delay(50); - if (tryCount > 60) - break; - } - } - - //If WiFi is not connected, return false - if (WiFi.status() != WL_CONNECTED) - { - _imapStatus = MAIL_CLIENT_STATUS_WIFI_CONNECT_FAIL; - - if (imapData._readCallback) - { - imapData._cbData._info = ESP32_MAIL_STR_53 + imapErrorReasonStr(); - imapData._cbData._status = ESP32_MAIL_STR_52; - imapData._cbData._success = false; - imapData._readCallback(imapData._cbData); - } - if (imapData._debug) - ESP32MailDebugInfo(ESP32_MAIL_STR_226); - goto out; - } if (imapData._readCallback) { @@ -977,40 +944,6 @@ bool ESP32_MailClient::_setFlag(IMAPData &imapData, int msgUID, const String &fl ESP32MailDebug(String(imapData._port).c_str()); } - if (WiFi.status() != WL_CONNECTED) - WiFi.reconnect(); - - //Try to reconnect WiFi if lost connection - if (WiFi.status() != WL_CONNECTED) - { - uint8_t tryCount = 0; - WiFi.reconnect(); - while (WiFi.status() != WL_CONNECTED) - { - tryCount++; - delay(50); - if (tryCount > 60) - break; - } - } - - //If WiFi is not connected, return false - if (WiFi.status() != WL_CONNECTED) - { - _imapStatus = MAIL_CLIENT_STATUS_WIFI_CONNECT_FAIL; - - if (imapData._readCallback) - { - imapData._cbData._info = ESP32_MAIL_STR_53 + imapErrorReasonStr(); - imapData._cbData._status = ESP32_MAIL_STR_52; - imapData._cbData._success = false; - imapData._readCallback(imapData._cbData); - } - if (imapData._debug) - ESP32MailDebugInfo(ESP32_MAIL_STR_226); - goto out; - } - if (imapData._readCallback) { imapData._cbData._info = ESP32_MAIL_STR_50; @@ -1314,33 +1247,10 @@ bool ESP32_MailClient::_setFlag(IMAPData &imapData, int msgUID, const String &fl return false; } -bool ESP32_MailClient::reconnect() -{ - if (WiFi.status() != WL_CONNECTED) - { - if (_lastReconnectMillis == 0) - { - WiFi.reconnect(); - _lastReconnectMillis = millis(); - } - if (WiFi.status() != WL_CONNECTED) - { - if (millis() - _lastReconnectMillis > _reconnectTimeout) - _lastReconnectMillis = 0; - return false; - } - else - { - _lastReconnectMillis = 0; - } - } - return WiFi.status() == WL_CONNECTED; -} bool ESP32_MailClient::smtpClientAvailable(SMTPData &smtpData, bool available) { - if (!reconnect()) - return false; + if (!smtpData._net->getStreamPtr()) return false; @@ -1352,8 +1262,7 @@ bool ESP32_MailClient::smtpClientAvailable(SMTPData &smtpData, bool available) bool ESP32_MailClient::imapClientAvailable(IMAPData &imapData, bool available) { - if (!reconnect()) - return false; + if (!imapData._net->getStreamPtr()) return false; @@ -1443,38 +1352,6 @@ bool ESP32_MailClient::sendMail(SMTPData &smtpData) ESP32MailDebug(String(smtpData._port).c_str()); } - if (WiFi.status() != WL_CONNECTED && !ETH.linkUp()) - WiFi.reconnect(); - - //Try to reconnect WiFi if lost connection - if (WiFi.status() != WL_CONNECTED && !ETH.linkUp()) - { - uint8_t tryCount = 0; - WiFi.reconnect(); - while (WiFi.status() != WL_CONNECTED) - { - tryCount++; - delay(50); - if (tryCount > 60) - break; - } - } - - //If WiFi is not connected, return false - if (WiFi.status() != WL_CONNECTED && !ETH.linkUp()) - { - _smtpStatus = MAIL_CLIENT_STATUS_WIFI_CONNECT_FAIL; - - if (smtpData._sendCallback) - { - smtpData._cbData._info = ESP32_MAIL_STR_53 + smtpErrorReasonStr(); - smtpData._cbData._success = false; - smtpData._sendCallback(smtpData._cbData); - } - if (smtpData._debug) - ESP32MailDebugInfo(ESP32_MAIL_STR_237); - goto failed; - } if (smtpData._debug) smtpData._net->setDebugCallback(ESP32MailDebug); @@ -3269,10 +3146,7 @@ bool ESP32_MailClient::waitIMAPResponse(IMAPData &imapData, uint8_t imapCommandT { imapData._error[mailIndex] = true; imapData._errorMsg[mailIndex].clear(); - if (WiFi.status() != WL_CONNECTED) - imapData._errorMsg[mailIndex] = ESP32_MAIL_STR_94; - else - imapData._errorMsg[mailIndex] = ESP32_MAIL_STR_95; + imapData._errorMsg[mailIndex] = ESP32_MAIL_STR_95; } } } diff --git a/src/ESP32_MailClient.h b/src/ESP32_MailClient.h index b7c98be..d36e475 100644 --- a/src/ESP32_MailClient.h +++ b/src/ESP32_MailClient.h @@ -1,7 +1,7 @@ /* - *Mail Client Arduino Library for ESP32, version 2.1.3 + *Mail Client Arduino Library for ESP32, version 2.1.4 * - * April 11, 2020 + * April 12, 2020 * * This library allows ESP32 to send Email with/without attachment and receive Email with/without attachment download through SMTP and IMAP servers. * @@ -38,13 +38,13 @@ #include #include "WiFiClientSecureESP32.h" -#include "ETH.h" +#include #include #include -#include "SD.h" -#include "SPI.h" -#include "FS.h" -#include "SPIFFS.h" +#include +#include +#include +#include #include "RFC2047.h" #include "ESP32MailHTTPClient.h" #include "ESP32TimeHelper.h" @@ -543,7 +543,6 @@ ESP32TimeHelper Time; void createDirs(std::string dirs); bool smtpClientAvailable(SMTPData &smtpData, bool available); bool imapClientAvailable(IMAPData &imapData, bool available); - bool reconnect(); bool sdTest(); };