mirror of https://github.com/arendst/Tasmota.git
Merge pull request #6637 from gemu2015/sendmail-update
sendmail with bearsssl-light
This commit is contained in:
commit
ccf13080e2
|
@ -21,7 +21,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "my_user_config.h"
|
#include "my_user_config.h"
|
||||||
#ifdef USE_MQTT_TLS
|
//#ifdef USE_MQTT_TLS
|
||||||
|
#if defined(USE_MQTT_TLS) || defined (USE_SENDMAIL)
|
||||||
|
|
||||||
//#define DEBUG_TLS
|
//#define DEBUG_TLS
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,12 @@
|
||||||
|
|
||||||
//#define DEBUG_EMAIL_PORT
|
//#define DEBUG_EMAIL_PORT
|
||||||
|
|
||||||
#include <WiFiClient.h>
|
//#include <WiFiClient.h>
|
||||||
#include <WiFiClientSecure.h>
|
//#include <WiFiClientSecure.h>
|
||||||
#include <base64.h>
|
#include <base64.h>
|
||||||
#include <core_version.h>
|
//#include <core_version.h>
|
||||||
|
|
||||||
|
#include "WiFiClientSecureLightBearSSL.h"
|
||||||
|
|
||||||
class SendEmail
|
class SendEmail
|
||||||
{
|
{
|
||||||
|
@ -22,10 +24,7 @@ class SendEmail
|
||||||
WiFiClient* client;
|
WiFiClient* client;
|
||||||
#else
|
#else
|
||||||
// use bear ssl
|
// use bear ssl
|
||||||
// #include "WiFiClientSecureLightBearSSL.h"
|
BearSSL::WiFiClientSecure_light *client;
|
||||||
// BearSSL::WiFiClientSecure_light *client;
|
|
||||||
BearSSL::WiFiClientSecure* client;
|
|
||||||
//WiFiClientSecure* client;
|
|
||||||
#endif
|
#endif
|
||||||
String readClient();
|
String readClient();
|
||||||
void a3_to_a4(unsigned char * a4, unsigned char * a3);
|
void a3_to_a4(unsigned char * a4, unsigned char * a3);
|
|
@ -1,10 +1,12 @@
|
||||||
|
#ifdef USE_SENDMAIL
|
||||||
|
|
||||||
#include "sendemail.h"
|
#include "sendemail.h"
|
||||||
|
|
||||||
// enable serial debugging
|
// enable serial debugging
|
||||||
//#define DEBUG_EMAIL_PORT Serial
|
//#define DEBUG_EMAIL_PORT Serial
|
||||||
|
|
||||||
SendEmail::SendEmail(const String& host, const int port, const String& user, const String& passwd, const int timeout, const int auth_used) :
|
SendEmail::SendEmail(const String& host, const int port, const String& user, const String& passwd, const int timeout, const int auth_used) :
|
||||||
host(host), port(port), user(user), passwd(passwd), timeout(timeout), ssl(ssl), auth_used(auth_used), client(new WiFiClientSecure())
|
host(host), port(port), user(user), passwd(passwd), timeout(timeout), ssl(ssl), auth_used(auth_used), client(new BearSSL::WiFiClientSecure_light(1024,1024))
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +24,7 @@ String SendEmail::readClient()
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetSerialBaudrate(int baudrate);
|
//void SetSerialBaudrate(int baudrate);
|
||||||
|
|
||||||
bool SendEmail::send(const String& from, const String& to, const String& subject, const String& msg)
|
bool SendEmail::send(const String& from, const String& to, const String& subject, const String& msg)
|
||||||
{
|
{
|
||||||
|
@ -42,21 +44,23 @@ bool SendEmail::send(const String& from, const String& to, const String& subject
|
||||||
|
|
||||||
#if defined(ARDUINO_ESP8266_RELEASE_2_3_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_2)
|
#if defined(ARDUINO_ESP8266_RELEASE_2_3_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_2)
|
||||||
#else
|
#else
|
||||||
client->setInsecure();
|
//client->setInsecure();
|
||||||
|
/*
|
||||||
bool mfln = client->probeMaxFragmentLength(host.c_str(), port, 512);
|
bool mfln = client->probeMaxFragmentLength(host.c_str(), port, 512);
|
||||||
#ifdef DEBUG_EMAIL_PORT
|
#ifdef DEBUG_EMAIL_PORT
|
||||||
DEBUG_EMAIL_PORT.printf("MFLN supported: %s\n", mfln ? "yes" : "no");
|
DEBUG_EMAIL_PORT.printf("MFLN supported: %s\n", mfln ? "yes" : "no");
|
||||||
#endif
|
#endif
|
||||||
if (mfln) {
|
if (mfln) {
|
||||||
client->setBufferSizes(512, 512);
|
client->setBufferSizes(512, 512);
|
||||||
}
|
}*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (!client->connect(host.c_str(), port))
|
if (!client->connect(host.c_str(), port))
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_EMAIL_PORT
|
#ifdef DEBUG_EMAIL_PORT
|
||||||
DEBUG_EMAIL_PORT.println("Connection failed");
|
DEBUG_EMAIL_PORT.println("Connection failed: ");
|
||||||
|
//DEBUG_EMAIL_PORT.println (client->getLastSSLError());
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -302,3 +306,5 @@ int SendEmail::base64_encode(char *output, const char *input, int inputLen) {
|
||||||
return encLen;
|
return encLen;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif // USE_SENDMAIL
|
|
@ -2461,7 +2461,8 @@ String UrlEncode(const String& text)
|
||||||
// sendmail [*:*:*:*:*:to:subject] data uses defines from user_config
|
// sendmail [*:*:*:*:*:to:subject] data uses defines from user_config
|
||||||
// sendmail currently only works with core 2.4.2
|
// sendmail currently only works with core 2.4.2
|
||||||
|
|
||||||
#define SEND_MAIL_MINRAM 19*1024
|
|
||||||
|
#define SEND_MAIL_MINRAM 12*1024
|
||||||
|
|
||||||
uint16_t SendMail(char *buffer) {
|
uint16_t SendMail(char *buffer) {
|
||||||
uint16_t count;
|
uint16_t count;
|
||||||
|
|
Loading…
Reference in New Issue