Site icon Renzo Mischianti

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:

#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
}
Exit mobile version