[Arduino] Exécuter une page PHP hébergée sur un serveur

Bonjour / bonsoir,

je suis un élève de terminale STI2D, spécialité SIN, et pour mon projet de fin d'année, j'ai besoin d'envoyer un mail avec une carte Arduino UNO, et un Shield Ethernet comme matériel.

Avec mon camarade, nous avons essayé d'envoyer le mail directement via la carte Arduino, grâce à un programme trouvé sur Internet, mais il se trouve que l'envoi est impossible car la carte Arduino est incapable de passer les protocoles de sécurité mis en place par les serveur mail.

Nous avons aussi essayé de passer par une page PHP, solution que nous avons décidé d'approfondir. Nous avons donc la page PHP, qui a été vérifié par un proche à mon ami, qui a confirmé qu'elle est juste, voici le code :

<?php
$mail = 'contact.linardipaolo@gmail.com'; // Déclaration de l'adresse de destination.
$passage_ligne = "\n";
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Il y a un incendie.";
$message_html = "<html><head></head><body>Il y a un <b>incendie</b></body></html>";
 
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
 
//=====Définition du sujet.
$sujet = "Message d'alerte incendie";
//=========
 
//=====Création du header de l'e-mail.
$header = "From: \"MessageAuto\"<contact.linardipaolo@gmail.com>".$passage_ligne;
$header.= "Reply-to: \"MessageAuto\" <contact.linardipaolo@gmail.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
 
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
 
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
 
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
 
//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
 
 
 
$message.= $passage_ligne."--".$boundary.$passage_ligne;
 
//=====Ajout de la pièce jointe.
$message.= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
//========== 
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
 
//==========
?>

La page PHP fonctionne, maintenant passons au programme Arduino :

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x3B, 0x29 };
//IPAddress server( **,***,**,***); // A utiliser pour passer outre DNS
char server[] = "www.*******.com";    // Ligne changée (originale : www.google.com)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(10, **, *, **);

EthernetClient client;

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

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Tentative de configuration Ethernet via DHCP échouée");
    Ethernet.begin(mac, ip);
  }
  delay(1000);
  Serial.println("Connexion en cours ...");

  if (client.connect(server, 80)) {
    Serial.println("Connecte");
    delay(500);
    client.println("GET /envoi_mail_perso.php HTTP/1.1");
    delay(500);
    client.println("Connexion: fermee");
    delay(500);
    client.println();
    delay(500);  
  } else {
    Serial.println("Connexion echouee");
  }
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("Deconnecte");
    client.stop();

    while (true);
  }
}

L'adresse IP est une adresse qui a été donnée par l'administrateur réseau, elle est libre sur le réseau du lycée.
Malgré ça, nous avons toujours le même message qui s'affiche dans le moniteur série : "Connecté" suivi de "Déconnecté" ... Mais rien ne se passe au niveau de l'envoi du mail ...

J'implore votre aide et votre savoir messieurs, pour m'aider à résoudre mon problème ...