Site icon Renzo Mischianti

Arduino Uno Wifi Rev2 Could not connect to mail server

Hello, I'm trying to use an Arduino Uno Wifi Rev2 Board with a Ublox W102 wifi/bluetooth module to send emails. However, whenever I try to send an email, the board connects to wifi but says "0 2 Could not connect to mail server." So far, I've tried uploading the google.com443 certificate, set the gmail account to allow for less secure app access, enabled IMAP access from the gmail account, and connecting to my phone's hotspot to check if something in the wifi was blocking it. Why is it still not connecting to the mail server? Any help would be appreciated!

#include "Arduino.h"
#include <EMailSender.h>
#include <WiFiNINA.h>

uint8_t connection_state = 0;
uint16_t reconnect_interval = 10000;

const char *ssid = "WiFi SSID";
const char *password = "WiFi Password";

EMailSender emailSend("Sender email (That has less security settings on)",
		"Sender email password");

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(115200);

	connection_state = WiFiConnect(ssid, password);
	if (!connection_state) // if not connected to WIFI
		Awaits(); // constantly trying to connect

	EMailSender::EMailMessage message;
	message.subject = "Email";
	message.message = "Email Sent!";

	EMailSender::Response resp = emailSend.send("Recipient email account",
			message);

	Serial.println("Sending status: ");

	Serial.println(resp.status);
	Serial.println(resp.code);
	Serial.println(resp.desc);
	delay(1000);

}

void loop() {

}

Exit mobile version