Aller au contenu

Insérer une image dans un e-mail


Messages recommandés

Posté(e)

Je cherche le moyen d'insérer une image dans un e-mail envoyé par la HC2.

J'ai essayé plusieurs solutions mais sans succès. Auriez-vous une idée comment il faut faire ?

Mon code est le suivant:

---User settings------
 
--user id to send the e-mail to.
UserId = 2; 
local stationNo = 1
 
--end of settings---
--DO NOT CHANGE THE CODE BELOW
 
wT = json.decode(fibaro:getGlobalValue("WeatherState"))

function sendEmail(subject, content)
  --first parameter is the user.
   fibaro:call(UserId,"sendEmail", subject,content);
  end
  
emailContent = " Weather update Arbusigny  \n";
emailContent = emailContent .. "Date: " ..  os.date("%d %b %Y - %H:%M") .. "\n \n"; 
fibaro:debug("<img src=http://openweathermap.org/img/w/"..wT.openmap[stationNo].w_icon..".png>")
emailContent = emailContent .. "Condition: " ..wT.openmap[stationNo].w_desc.." " .. "<img src=http://openweathermap.org/img/w/"..wT.openmap[stationNo].w_icon..".png>\n";
emailContent = emailContent .. " Température: " ..wT.openmap[stationNo].temp.. wT.openmap[stationNo].temp_unit.. " \n";
emailContent = emailContent .. " Humidité: " ..wT.openmap[stationNo].humid.. " %\n";
emailContent = emailContent .. " Pression: " ..wT.openmap[stationNo].press..wT.openmap[stationNo].press_unit.. " \n";
emailContent = emailContent .. " Vent: " ..wT.openmap[stationNo].wind.. wT.openmap[stationNo].wind_unit.." "..wT.openmap[stationNo].wind_deg.."° / "..wT.openmap[stationNo].wind_dir.. " \n";
emailContent = emailContent .. " Pluie: " ..wT.openmap[stationNo].rain.. " mm depuis les 3 dernières heures \n";
emailContent = emailContent .. " Visibilité: " ..wT.openmap[stationNo].visibility.. " m \n";
emailContent = emailContent .. "______________________________________________\n";
emailContent = emailContent .. " Température Min: " ..wT.openmap[stationNo].temp_min..wT.openmap[stationNo].temp_unit.. " \n";
emailContent = emailContent .. " Température Max: " ..wT.openmap[stationNo].temp_max..wT.openmap[stationNo].temp_unit.. " \n";
emailContent = emailContent .. "______________________________________________\n";
emailContent = emailContent .. " Humidité Min: " ..wT.openmap[stationNo].humid_min.." % \n";
emailContent = emailContent .. " Humidité Max: "..wT.openmap[stationNo].humid_max.. " % \n";
emailContent = emailContent .. "______________________________________________\n";
emailContent = emailContent .. " Pression Minimum: " ..wT.openmap[stationNo].press_min..wT.openmap[stationNo].press_unit.. " \n";
emailContent = emailContent .. " Pression Max: " ..wT.openmap[stationNo].press_max..wT.openmap[stationNo].press_unit.. " \n";
emailContent = emailContent .. "______________________________________________\n";
emailContent = emailContent .. " Vent Max: " ..wT.openmap[stationNo].wind_max..wT.openmap[stationNo].wind_unit.. " \n";
 
sendEmail(" Arbu Weather update Summary",emailContent);

le mail que ce reçois est celui-ci, en lieu et place de l'image, il m'affiche un lien....

 

Capture d’écran 2017-04-08 à 17.35.49.png

Posté(e)

Car tu envoies un email au format Texte brut.

 

Il faudrait envoyer un email au format HTML, avec tous les entêtes qui tout le bazar.

Il y a plein d'exemples sur Internet, pour mettre en forme ses emails au format html, ça se fait bien, c'est jusque que ça va alourdir ton code LUA.

Je ne l'ai jamais fait en LUA, mais je l'ai déjà fait dans des langages encore plus rudimentaires, comme depuis des scripts Shell.

 

Cela dit, il faut espérer que Fibaro ne filtre pas le contenu du mail, car il passe obligatoirement par leur serveur.

Dans ce cas, la solution ultime serait d'envoyer l'email directement via le serveur SMTP de ton provider Internet, mais dans ce cas il faudra encore en plus ajouter la gestion du protocole SMTP. Assez simple heureusement, peut-être l'a tu déjà fait depuis une console telnet.

Par contre ça serait la solution ultime pour envoyer des emails depuis la HC2, en était indépendant des serveurs (cloud) de Fibaro.

 

×
×
  • Créer...