View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Réseau : Envoyer un mail !

Par X. HINAULT - Juillet 2013

Ce que l'on va faire ici

  • Ce code va... envoyer un mail ! Non, vous ne rêvez pas : c'est assez facile à faire avec Pyduino grâce aux fonctions intégrées dans la librairie.
  • Pour plus de détails, se reporter aux instructions pyduino Réseau

Pré-requis

  • un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d'accueil du pcDuino
  • Langage Python (2.7) et l'IDE Pyduino ou l'éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
  • ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
  • D'autre part, vous devez disposer d'un compte mail personnel avec un serveur SMTP actif, ce qui est le cas la plupart du temps. Si vous n'en n'avez pas, créez en un pour l'occasion. Sinon, il est aussi possible d'installer un serveur SMTP sur le pcDuino, mais la procédure est plus complexe pour un simple test.
  • Vous devez disposez des informations suivantes :
    • nom du serveur smtp : par exemple mail.mondomaine.fr. Info fournie par votre hébergeur de mail
    • port utilisé sur le serveur smtp : par défaut 25, mais parfois 26 ou 587... Info fournie par votre hébergeur de mail.
    • votre adresse mail et le mot de passe associé.
    • l'adresse mail du destinataire.

Schéma fonctionnel

  • Le code Pyduino se connecte au serveur SMTP utilisé, transmet le mail qui est ensuite distribué au destinataire par le serveur SMTP.

Matériel nécessaire

Système

  • Le pcDuino connecté à internet via le réseau local

E/S

  • Pas utilisées ici.

Instructions de montage

  • Connecter le PC duino au réseau local connecté à internet.

Le montage à réaliser

Le fichier *.py

Copier/coller ce code dans l'éditeur Geany :


#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3
# voir : https://github.com/sensor56/pyDuino

# test envoi mail

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative
noLoop=True

#--- setup ---
def setup():

        mailServer=MailServer()

        #-- parametres du serveur smtp
        mailServer.setName("serveurmail.expediteur.fr")
        mailServer.setPort(25)

        #-- expediteur
        mailServer.setFromMail("adresse@expediteur.fr")
        mailServer.setFromPassword("motdepasseexpediteur")

        #-- destinataire
        mailServer.setToMail("adresse@destinataire.fr")


        # affiche parametres
        print "serveur smtp : "
        print "nom : " + mailServer.name
        print "port : " + str(mailServer.port)
        print "expediteur :"
        print "adresse mail : " + mailServer.fromMail
        print "mot de passe : " + mailServer.fromPassword
        print "destinataire : "
        print "adresse mail : " + mailServer.toMail

        print ""

        # contenu du mail
        mailServer.setSubject("Mail de test")
        mailServer.setMsg("Coucou. Nous sommes le " + today("/") + ". Il est " + nowtime(":")+".")

        # affiche le header
        print mailServer.getHeader()

        # envoi message
        mailServer.sendMail()

# -- fin setup --

# -- loop --
def loop():
        return  # si vide

# -- fin loop --

#--- obligatoire pour lancement du code --
if __name__=="__main__": # pour rendre le code executable
        setup() # appelle la fonction main
        while not noLoop: loop() # appelle fonction loop sans fin

 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Mail/MailServerTest.py

Utilisation

  • Appuyer sur le bouton exécuter dans Geany
  • Une fenêtre de Terminal vide doit apparaître : suit l'affichage du contenu du mail envoyé.
  • Il suffit ensuite d'ouvrir sa messagerie mail pour visualiser le mail envoyé. Attention, un petit délai est parfois nécessaire, c'est normal.

Discussion technique

  • Il est potentiellement possible d'implémenter le serveur mail directement sur le miniPC si on le souhaite, mais la procédure est un peu plus compliquée.