#include "WiFiEsp.h"
#include <EMailSender.h>
char ssid[] = "MY SSID"; // your network SSID (name)
char pass[] = "MY PASSWORD"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
WiFiEspClient client;
#define ESP_BAUDRATE 9600
#include <Wire.h>
int sendmyemailnow_tmr;
uint8_t connection_state = 0;
uint16_t reconnect_interval = 10000;
EMailSender emailSend("myemail@gmail.com", "myemailpassword");
uint8_t WiFiConnect(const char *nSSID = nullptr,
const char *nPassword = nullptr)
{
static uint16_t attempt = 0;
Serial.print("Connecting to ");
if (nSSID) {
WiFi.begin(nSSID, nPassword);
Serial.println(nSSID);
}
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED && i++ < 50) {
delay(200);
Serial.print(".");
}
++attempt;
Serial.println("");
if (i == 51) {
Serial.print("Connection: TIMEOUT on attempt: ");
Serial.println(attempt);
if (attempt % 2 == 0)
Serial.println(
"Check if access point available or SSID and Password\r\n");
return false;
}
Serial.println("Connection: ESTABLISHED");
Serial.print("Got IP address: ");
Serial.println(WiFi.localIP());
return true;
}
void Awaits() {
uint32_t ts = millis();
while (!connection_state) {
delay(50);
if (millis() > (ts + reconnect_interval) && !connection_state) {
connection_state = WiFiConnect();
ts = millis();
}
}
}
void setup() {
Serial.begin(9600);
Serial3.begin(9600); //baud rate for ESP8266 and Serial Monitor
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo native USB port only
}
Serial.print("Searching for ESP8266...");
WiFi.init(&Serial3);
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
while (true)
;
}
Serial.println("found it!");
Serial3.println("AT");
Serial.println("AT");
delay(5000);
if (Serial3.find("OK")) {
Serial.println("OK");
delay(1000);
}
}
void loop() {
delay(1000);
Serial.println(sendmyemailnow_tmr);
sendmyemailnow_tmr++;
if ((sendmyemailnow_tmr) > 20) {
sendmyemailnow_tmr = 0;
sendmyemailnow();
}
}
void sendmyemailnow() {
connection_state = WiFiConnect(ssid, pass);
if (!connection_state) // if not connected to WIFI
Awaits(); // constantly trying to connect
EMailSender::EMailMessage message;
message.subject = "Test Email1";
message.message = "Ciao come stai<br>io bene.<br>www.mischianti.org";
EMailSender::Response resp = emailSend.send("mornestander1971@gmail.com",
message);
Serial.println("Sending status: ");
Serial.println(resp.status);
Serial.println(resp.code);
Serial.println(resp.desc);
//EMAIL STUFF
}
ESP 8266 error: Could not connect to mail server
Hi Renzo.
As per earlier comments.
I ended up setting up a different gmail account and switched on the non-secure log-in function within gmail.
I changed the code to: EMailSender emailSend(“xxxxxx@gmail.com”, “password”); and I’m 100% sure the credentials are correct.
I still however get:
Connecting to [WiFiEsp] Connected to MS_DK_FB [2Ghz]
MS_DK_FB [2Ghz]
Connection: ESTABLISHED
Got IP address: 192.168.101.181
Sending status:
0
2
Could not connect to mail server
Perhaps I should mention that I’m using the Arduino Mega connected to the ESP8266 over serial.
I also send data to a remote server via the ESP8266 and all that functions well.
Any assistance would be appreciated.
Code follows: