Skip to content
This repository has been archived by the owner on Jan 10, 2021. It is now read-only.

Commit

Permalink
Remove the WiFi reconnection and its status checking.
Browse files Browse the repository at this point in the history
  • Loading branch information
mobizt committed Apr 11, 2020
1 parent df78d31 commit 5c6f8db
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 153 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
24 changes: 12 additions & 12 deletions keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name=ESP32 Mail Client

version=2.1.3
version=2.1.4

author=Mobizt

Expand Down
136 changes: 5 additions & 131 deletions src/ESP32_MailClient.cpp
Original file line number Diff line number Diff line change
@@ -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.
*
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;

Expand All @@ -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;

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}
}
}
Expand Down
15 changes: 7 additions & 8 deletions src/ESP32_MailClient.h
Original file line number Diff line number Diff line change
@@ -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.
*
Expand Down Expand Up @@ -38,13 +38,13 @@

#include <Arduino.h>
#include "WiFiClientSecureESP32.h"
#include "ETH.h"
#include <ETH.h>
#include <vector>
#include <string>
#include "SD.h"
#include "SPI.h"
#include "FS.h"
#include "SPIFFS.h"
#include <SD.h>
#include <SPI.h>
#include <FS.h>
#include <SPIFFS.h>
#include "RFC2047.h"
#include "ESP32MailHTTPClient.h"
#include "ESP32TimeHelper.h"
Expand Down Expand Up @@ -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();
};

Expand Down

0 comments on commit 5c6f8db

Please sign in to comment.