Envoyer une requête à un serveur et envoyer un email depuis ce serveur

Bonjour avec quelques semaines d'absence et d'aide d'une personne plus compétente que moi en arduino nous en sommes arrivés à ce programme : (il a était repris en partie sur internet mais pleins d'autres programmes on était fait pour mieux comprendre le fonctionnement de la carte et maintenant c'est la carte qui envoie le mail directement via SMTP)

#include <SPI.h>
#include <Ethernet2.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x88, 0x9B };

IPAddress ip(192, 168, 100, 20);
IPAddress gateway(192, 168, 100, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress server(xxx, xxx, xxx, xxx);
EthernetClient client;


void setup() {
  Serial.begin(9600);
  while (!Serial) {
  }

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for (;;)
      ;
  }
  // print your local IP address:
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print(".");
  }
  Serial.println();



  //------------------------------------------------

  if (client.connect(server, 25)) {
    Serial.println("connected");    // Make a HTTP request:
    delay(2000);
    char c = client.read();
    Serial.print(c);

    Serial.println("ok1");

    client.println("HELO");
    char d = client.read();
    Serial.print(d);

    Serial.println("ok2");

    delay(2000);
    client.println("MAIL FROM:XXX");
    delay(500);
    client.println("RCPT TO:XXX");
    delay(500);
    client.println("DATA");
    delay(500);
    client.println("From: Arduino <XXX>");
    delay(100);
    client.println("Subject: Alerter");
    delay(100);
    client.println("To: XXXX");
    delay(100);
    client.println("");
    delay(100);
    client.println("BEUG ARDUINO");
    delay(100);
    client.println(".");
    delay(500);
    client.println("");
    delay(5000);
    client.println("quit");
    delay(500);
  }
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}


void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  /* if (client.available()) {
     char c = client.read();
     Serial.print(c);
    }
  */
  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    for (;;)
      ;
  }

}

Un des plus gros problèmes et que je ne trouvais pas la bibliothèque Ethernet2.
Mais le problème est que je ne reçois pas l'email ..
Peut on s'envoyer un email à soi-même dans ce cas là ?
Si quelqu'un pourrait tester ce programme et me dire ce qu'il ne va pas cela m'aiderait énormément !
Merci d'avance à celui qui trouvera la réponse à mon problème.