Gmail...

Bonjour à tous !

J'espère que vous allez bien !

Alors j'ai LA question du jour pour vous ! Comment envoyer un email via l'arduino par une adresse gmail ? Vous me direz: Simple ! Sauf qu'envoyer un email via le smtp de son FAI je sais faire, cependant via le serveur gmail je n'ai jamais réussi... Il s'avère que gmail demande obligatoirement une connections sécurisé TLS pour envoyer un email, alors que votre FAI non en règle général.

Une idée comment faire ?

Merci d'avance à tous !

Salut,

J’ai trouvé ça :

<?php require_once "Mail.php"; $from = ""; $to = ""; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; $host = "ssl://smtp.gmail.com"; $port = "465"; $username = ""; $password = "password"; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo("

" . $mail->getMessage() . "

"); } else { echo("

Message successfully sent!

"); } ?>

Si tu arrives à appeler une page PHP depuis l’Arduino, ça pourra peut être t’aider.

Bonjour, Réponse directe, depuis l'arduino seul, pas possible !

La solution, une script "proxy" (en php, python, ...) avec une routine mail supportant le ssl (via openssl ou assimilé).

Génial TT...

Donc impossible de charger cela dans l'arduino ? Il faut forcément passer par un système extérieur ?

/mode +joke Quoi ? Personne ne veux porter openssl ou gnutls sur Arduino ? Comment ça il y à même pas la place ? tssss tssss tssss /mode -joke

Autre option, trouver/utiliser un FAI qui requiert pas un socket SSL ou un STARTTLS pour l'authentification dans le cas d'un relay SMTP ... Chez orange a une époque éloigné, le fait de venir d'un abo ADSL FT suffisait pour avoir le droit de confier ses mails au smtp relay d'Orange sans authentification aucune. Il paraîtrait qu'ils aient arrêté pour cause d'utilisation pour spam massif ... Est ce possible ?

D.

Voilà la solution en php pour ceux que ça intéresse !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gmail</title>
</head>
<body>

<?php 
 
       require_once "Mail.php"; 
 
        $from = "Jean-Baptiste <xxx@gmail.com>"; 
        $to = "Jean-Baptiste <xxx@xxx.xx>"; 
        $subject = "Hi!"; 
        $body = "Hi,\n\nHow are you?"; 
 
        $host = "ssl://smtp.gmail.com"; 
        $port = "465"; 
        $username = "xxx@gmail.com"; 
        $password = "xxx"; 
 
        $headers = array ('From' => $from, 
          'To' => $to, 
          'Subject' => $subject); 
        $smtp = Mail::factory('smtp', 
          array ('host' => $host, 
            'port' => $port, 
            'auth' => true, 
            'username' => $username, 
            'password' => $password)); 
 
        $mail = $smtp->send($to, $headers, $body); 
 
        if (PEAR::isError($mail)) { 
          echo("<p>" . $mail->getMessage() . "</p>"); 
         } else { 
          echo("<p>Message successfully sent!</p>"); 
         } 
 
    ?>
</body>
</html>

Avec bonheur !!! :grin: :grin: :grin:

En revanche je vais avoir la question qui tue là… Comment appeler ma page php avec l’Arduino ? merciii !!

if ( client_OVH.connect() ) {
          client_OVH.print( "GET /vers/ta/page.php5?contenu=" );
          client_OVH.println( "le%20texte%20a%20a%20personnaliser" );
} else {
          Serial.println( "Not connected" );
          client_OVH.stop();
}

Voilà :slight_smile:

client_OVH ? normal ? A quoi correspond: client_OVH.println( "le%20texte%20a%20a%20personnaliser" ); ?

merciiii encore !

client_OVH doit correspondre a un objet Client de la librairie Ethernet, déclaré de cette manière : Client client_OVH(ipServeur, 80);.

Le client_OVH.println( “le%20texte%20a%20a%20personnaliser” ); correspond au texte “le texte a a personnaliser” mais avec les caractères spéciaux (espaces, …) converti en paramètres d’url HTTP.
http://meyerweb.com/eric/tools/dencoder/

d'accord merci

donc client_OVH.println( "le%20texte%20a%20a%20personnaliser" ); sert à modifier ou donner une info supplémentaire à la page php ?

[quote author=Jean & Jean-Baptiste link=topic=79096.msg599348#msg599348 date=1321562072] donc client_OVH.println( "le%20texte%20a%20a%20personnaliser" ); sert à modifier ou donner une info supplémentaire à la page php ? [/quote] Cette ligne envoi des info au script php, le script php les lit ensuite dans cet exemple via $_GET["contenu"].

D'accord d'accord ! Donc je peux m'en servir de plusieurs par exemple pour modifier le contenu du mail et son sujet ? =)

merci encore !

skywodd: [quote author=Jean & Jean-Baptiste link=topic=79096.msg598600#msg598600 date=1321481315] client_OVH ? normal ? A quoi correspond: client_OVH.println( "le%20texte%20a%20a%20personnaliser" ); ?

merciiii encore !

client_OVH doit correspondre a un objet Client de la librairie Ethernet, déclaré de cette manière : Client client_OVH(ipServeur, 80);.

Le client_OVH.println( "le%20texte%20a%20a%20personnaliser" ); correspond au texte "le texte a a personnaliser" mais avec les caractères spéciaux (espaces, ...) converti en paramètres d'url HTTP. http://meyerweb.com/eric/tools/dencoder/ [/quote] Effectivement ! Il manque un bout de mon message, désolé !

Tu peux effectivement rajouter d'autres paramètres :)

D'accord d'accord ! Donc je peux m'en servir de plusieurs par exemple pour modifier le contenu du mail et son sujet ? =)

Il suffit de faire :

client_OVH.print( "GET /vers/ta/page.php5" ); client_OVH.print( "?variable=valeurs" ); // le 1er paramètres commence avec ? client_OVH.print( "&variable=valeurs" ); // les suivants avec & client_OVH.println( "&variable=valeurs" ); // le derniérs avec & et un retour ligne à la fin

Coté php tu récupère les variables avec $_GET["variable"]