Serveur d'impression

envoyer des emails avec SMTP – Serveur d’impression

Par Titanfall , le 3 mai 2019 - 4 minutes de lecture

arduino enc28j60 logo

J'ai passé plusieurs (longs) jours à essayer d'envoyer des courriels avec mon enc28j60 et la bibliothèque EtherCard, mais sans succès.

Mais avec UIPEthernet, cela s’est révélé être beaucoup plus simple. Après une journée de travail acharné, mon arduino a envoyé pas moins de 900 courriels ce soir !!! Une vraie machine à spam: D

Historique

Utilisateur du bouclier officiel (basé sur W5100) pendant un certain temps, je me suis tourné vers l'enc28j60 pour des raisons de … coût. Malheureusement, EtherCard (la lib à utiliser) n'a pas répondu à mes attentes.

Aussi, fatigué de me casser les dents sur le SMTP, j'ai fait appel à mon ami Google: il m'a conforté dans l'idée que la tâche n'allait pas être facile. Mais il m'a également référé à un message du forum Arduino qui parlait d'une nouvelle bibliothèque utilisable avec le module enc28j60.

Et les choses sont devenues considérablement plus simples.

Bon assez blahblah, code maintenant.

Le code

La connexion de la Enc28J60 sur mon arduino Mega 2560 est plus classique, vous pouvez trouver un exemple dans mon article précédent.

Tout d’abord, vous devez obtenir la bibliothèque UIPEthernet dans le référentiel du développeur, ainsi que FullIP sur mon ordinateur. Github. Vous pouvez utilisez le lien Download Zip en bas à droite de la page d'accueil des référentiels.

Après avoir décompressé l'archive dans la bibliothèque, vous devez éditer le fichier d'en-tête (FullIP / FullIP.h) pour spécifier la carte à utiliser. Décommentez la ligne suivante pour compliquer l'utilisation de l'enc28j60. Si vous commentez (avec //), vous pouvez ensuite utiliser votre sketch avec un W5100.

#define FULLIP_UIP

De même, commentez la ligne suivante si vous ne songez pas à utiliser la carte SD dans votre sketch.

// # définit FULLIP_SD

Démarrez votre arduino maintenant et ouvrez l'exemple du client SMTP.

/ *
* Exemple UIPEthernet SmtpClient.
*
* UIPEthernet est une pile TCP / IP pouvant être utilisée avec le logiciel a28j60.
* Ethernet-bouclier.
*
* UIPEthernet utilise la pile de pile fine d'Adam Dunkels
*
* —————–
*
* Cet exemple SMTPClient obtient son adresse IP locale via DHCP et envoie
* emails toutes les 10 secondes.
* En fait, il n'y a pas de support pour le mécanisme d'authentification.
*
* Copyright (C) 2013 par Norbert Truchsess
* Copyright (C) 2013 par bibi21000
* /
#comprendre
SMTPClient smtpclient;
signé longtemps après;
// Le nom de votre serveur SMTP
nom du serveur[] = "smtp.yourisp.com";
// Le domaine d'où proviendront vos emails
char nom_domaine[] = "votredomaine.com";
// L'expéditeur
char de[] = "Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.
";
// Le récepteur
char à[] = "Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.
";
// L'objet
sujet d'omble[] = "Ceci est le sujet";
// et le corps
corps de char[] = "Et voici le corps";

void setup ()
Serial.begin (115200);
Serial.println ("[SmtpClient]");
uint8_t mac[6] = 0x00,0x01,0x02,0x03,0x04,0x05;
Ethernet.begin (mac);
Serial.print ("localIP:");
Serial.println (Ethernet.localIP ());
smtpclient.begin (nom_serveur, nom_domaine);
next = 0;
retard (500);

boucle vide ()
// Appelle cette fonction dans ta boucle pour envoyer un message en "fond"
smtpclient.maintain ();
if (((signé long) (millis () – suivant))> 0)
Serial.print ("freeMemory () =");
Serial.println (freeMemory ());
if (smtpclient.isSent ())
Serial.println ("Le message a été envoyé");
autre
Serial.println ("Le message n'a PAS été envoyé");

next = millis () + 10000;
Serial.println ("Le client SMTP tente de se connecter au serveur");
if (smtpclient.sendMail (de, à, sujet, corps) == 1)
Serial.println ("Le message est en file d'attente");
autre
Serial.println ("Impossible de se connecter au serveur");

Après avoir modifié les paramètres, le résultat est le suivant:

arduino enc28j60 smtp

Ne laissez pas votre Arduino branché trop longtemps, sinon cela ruinerait votre boîte aux lettres. Une vraie machine à spam quoi;)

Pour plus d'informations, vous pouvez consulter la documentation officielle en ligne: http://bibi21000.gallet.info/index.php/fr/component/sphinxdoc/documentation/8-fullip-for-arduino/readme.html

jmx2munin-2.0.jar

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.