Budeme odosielať text, ktorý bude preddefinovaný v php súbore, ktorý sa odošle na zadaný mail.
Väčšina hostingov, kde sa umiestňujú webové stránky podporujú aj rozšírenia ako funkciu mail, čo umožňuje komunikáciu so SMTP serverom. Budeme teda využívať externý webový sever, kam sa budeme pripájať ako klient. Vďaka spomínanej mail funkcii môžeme priamo z webových stránok odosielať e-maily na rôzne e-mailové adresy, pričom je odosielateľom e-mailová adresa registrátora danej domény (vaša e-mailová adresa), z ktorej sa budú tieto maily odosielať.
Testované hostingy: php5.sk (php5.cz), sweb.cz
PHP kód (univerzálny pre všetky dosky):
Kód: Vybrat vše
<?php
$sprava= "Ahoj svet!";
$sprava= wordwrap($msg,70);
mail("adresaprijimatela@jehomail.com","Predmet spravy",$sprava);
?>
Kód: Vybrat vše
#include <SPI.h>
#include <Ethernet.h>
#define Hostname "Arduino"
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
char server[] = "www.mojweb.php5.sk";
IPAddress ip(192, 168, 1, 254);
EthernetClient client;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Ethernet.begin(mac) == 0) {
Serial.println("Chyba konfiguracie cez DHCP, nastavujem pevnu IP");
Ethernet.begin(mac, ip);
}
if (client.connect(server, 80)) {
Serial.println("Pripojenie uspesne na webserver, vykonavam request: ");
client.print("GET /email.php");
client.println(" HTTP/1.1");
client.println("Host: www.mojweb.php5.sk");
client.println("Connection: close");
client.println();
client.stop();
} else {
Serial.println("Pripojenie zlyhalo...");
}
delay(10000);
}
Kód: Vybrat vše
#include <ESP8266WiFi.h>
const char* ssid = "wifimeno";
const char* password = "wifiheslo";
const char* host = "mojweb.php5.sk";
void setup() {
Serial.begin(9600);
Serial.println();
Serial.println();
Serial.print("Pripajam sa na wifi ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
}
String url = "/email.php";
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10000);
}
Kód: Vybrat vše
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
const char* ssid = "wifimeno";
const char* password = "wifiheslo";
const char* host = "mojweb.php5.sk";
const int httpsPort = 443;
const char* fingerprint = "35 85 74 EF 67 35 A7 CE 40 69 50 F3 C0 F6 80 CF 80 3B 2E 19"; //odtlacok sha1 certifikatu
void setup() {
Serial.begin(9600);
Serial.println();
Serial.print("connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Use WiFiClientSecure class to create TLS connection
WiFiClientSecure client;
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpsPort)) {
Serial.println("connection failed");
return;
}
if (client.verify(fingerprint, host)) {
Serial.println("certificate matches");
} else {
Serial.println("certificate doesn't match");
}
String url = "/email.php";
Serial.print("requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"User-Agent: BuildFailureDetectorESP8266\r\n" +
"Connection: close\r\n\r\n");
delay(10000);
}
Freehostingy pracujú pri SMTP serveroch s e-mailovou adresou, ktorú ste si registrovali. Pozor na adresu g-mail. Z tejto adresy e-maily nebudú odosielané z dôvodu blokácie g-mailu pre odosielanie mailov externými službami/stránkami. E-maily centrum, zoznam fungovali ok.
E-maily sa dajú využiť napríklad pri rôznych situáciách, napríklad vytečenie vody, zadymenie..