invio mail con arduino

Salve a tutti sto cercando sul web una soluzione, ma trovo più "inviare mail a" che "inviare mail da" Arduino

la mia necessità è quella di inviare una mail nel caso, per esempio, arduino rilevasse una temperatura superiore a tot. °C

E' possibile ? L'ideale sarebbe farlo senza dover collegare arduino ad un pc :P

grazie a tutti fin da ora ! Andrea

ciao, per inviare un'email il metodo più semplice è usando il prtocollo POP3.. basta una counicazione TCP con un pop3 server (su cui avrai un account... tutti i siti di posta forniscono l'accesso pop3)

per conoscere i comandi cerca telnet pop3 e usciranno un sacco di guide

ok ! grazie ! provo a fare questo tipo di ricerca ... se non trovo nulla ritorno ! ;)

attento lesto, il protocollo pop3 o imap è solo in lettura, è iol protocollo smtp che invia.
inoltre vorrei dire attenti con il pop3 perchè se lo usate le mail vengono scaricate sul client e non rimangono sul server, quindi se arrivano mail ad arduino importanti e arduino non le salva su di sè queste andranno perse, diverso il protocollo imap che salva tutto su server!

superlol:
attento lesto, il protocollo pop3 o imap è solo in lettura, è iol protocollo smtp che invia.
inoltre vorrei dire attenti con il pop3 perchè se lo usate le mail vengono scaricate sul client e non rimangono sul server, quindi se arrivano mail ad arduino importanti e arduino non le salva su di sè queste andranno perse, diverso il protocollo imap che salva tutto su server!

L’email se ( come ben ovvio ) passanti per esempio su Gmail esse rimarranno salvate sul server e sarai te che le scaricherai da esso.
Perchè andranno perse ? Potrai benissimo accedere a " Gmail " e riscaricarle; alla fine tutte le Email rimangono salvate.

superlol: attento lesto, il protocollo pop3 o imap è solo in lettura, è iol protocollo smtp che invia.

effettivamente trovo solo pop3 e ricezione mail ... non invio !

per l'invio ho visto qualche soluzione ma appoggiandosi a qualcosa sul pc, mentre mi piacerebbe che arduino fosse indipendente XD qualcuno sa darmi supporto ?

errore mio, come detto da superlol dev cercare SMTP telnet per trovare delle guide per inviare. occhio che arduino non supporta l'SSL, quindi le connessioni sicure, ah e su gmail bisogna attivare l'impostazione per SMTP nelle impostazioni se no non va niente.

Con il pop3 non cancelli le email che leggi, c'è il però il comando per cancellarle. Poi magari c'è qualche server che se ti mostra le mail le cancela in automatico, ma non è standard

la maggior parte dei server di posta quanto ti connetti con un client in pop3 va a passare al client l'intera mail, quindi la passa dal server al client e sul server non rimane. esperienze personali. collegati al tuo account in pop3 con outlook, quindi inviati una mail con solo il client di outlook aperto, guarda le mail che hai, apri la webmail dal tuo provider, dimmi se c'è quella che ti sei inviato nella posta ricevuta.

il protocollo IMAP invece salva le mail su server e te le fa solo leggere, questa è la differenza

ok, ho controllato, son anni che non uso questi protocolli :) pop3 di default cancella il messaggio, credo però ci sia il comando per dirgli di non farlo (RSET prima di dare il QUIT) IMAP invece è un po' differente, più complesso e permette la sincronizzazione delle mail

diciamo che gestisco 2 webserver con server di posta :D non sai quanti dei tirati giù dal cielo perchè non offrivano l'imap ;) lo uso per lavoro :D

sto facendo dei test di telnet su gmail da dos … arrivo fin quì … poi l’errore :

220 mx.google.com ESMTP d6sm1521010wer.26
HELO
250 mx.google.com at your service
HELO
250 mx.google.com at your service
MAIL FROM
502 5.5.1 Unrecognized command. d6sm1521010wer.26
mail from: miamail@gmail.com
530 5.7.0 Must issue a STARTTLS command first. d6sm1521010wer.26

suggerimenti ?

sì. "Must issue a STARTTLS" vuol dire che ESIGE che tu faccia partire una connessione TLS (che è un protocollo di cifratura nato dall'SSL) imho è meglio se cerchi qualche server che supporta la connessione plain-text(ovvero senza cifratura), per esempio www.email.it (all'epoca di quando ci giochicchiavo.) rimane però necessaria l'autenticazione:

Enter "HELO"
Enter "AUTH LOGIN"

You now need to enter your email and then your password encoded in BASE64.
If you have successfully authenticated the server will return: "235 authenticated"

Enter "MAIL FROM YourUserName@YourDomain.com" (replace YourUserName@YourDomain.com with your email address)
Enter "RCPT TO  DestinationEmail" (replace DestinationEmail with the destination email)
Enter "DATA"
Enter "Subject: Test using telnet"
Enter ""  (Send a blank line to separate the headers from the message body)
Enter "This is just a test to see if I can SMTP auth from my PC"
Enter "."

The server will return: "250 Message queued"
Enter "quit"

tempo fa ho provato anch'io a mandare mail con la arduino, poi ho scoperto che non mi riusciva perche' libero, quando concludo la mail, invece di inviarla dice "consultare il sito taldeitali per inviare le mail"!!! :0 credo che richiedano una qualche forma di autenticazione, ma era troppo complicato e lasciai perdere. Invece con virgilio mi pare che l'SMTP sia semplice. L'IMAP non l'ho mai provato.

ps. quando cerchi su google "telnet mail", specifica date recenti, perche' molti provider hanno cambiato le cose, negli ultimi anni!

Finalmente sono riuscito a mandare la mia prima mail con telnet! Dal PC, ma con Arduino dovrebbe essere identico.

Ecco l’elenco di tutti i comandi (testato con virgilio e libero)

ehlo virgilio.it
auth login
[utente@virgilio.it in BASE64]
[password in BASE64]
MAIL FROM:utente@virgilio.it
rcpt to:utente@virgilio.it
data
subject:oggetto della mail

testo del messaggio
seconda riga
terza riga
.

Potete scrivere i comandi uno alla volta e premere invio dopo ognuno, oppure copiarli uno per volta e premere invio (per essere sicuri di non commettere errori)… oppure potete copiare l’intera sequenza in telnet e funziona lo stesso! :slight_smile:

Pero’, dopo la prima mail, poi per mandarle altre non bisogna più autenticarsi, cioè basta:

mail from:utente@virgilio.it
rcpt to:utente@virgilio.it
data
subject:oggetto della mail

testo del messaggio
seconda riga
terza riga
.

Nota: virglio non mi fa mandare mail ad altri che… me stesso, libero invece sì.
nota 2: tra subject e testo del messaggio deve esserci una riga vuota
nota 3: due indirizzi per convertire il vostro nome utente e password in BASE 64. NON METTETE ENTRAMBI SULLO STESSO SITO!!!
http://www.motobit.com/util/base64-decoder-encoder.asp
http://webnet77.com/cgi-bin/helpers/base-64.pl
Nota 4: l’ultima riga contiene un punto, se non lo mettete, il server non puo’ sapere che avete finito di scrivere!

Ho trovato una libreria in C per convertire in BASE64:

http://base64.sourceforge.net/b64.c

Dovrebbe essere possibile adattarla arduino, dopodiche' scrivere una "mail library" sarebbe un gioco da ragazzi! ;)

edit: questa forse è piu' semplice da convertire: http://www.adp-gmbh.ch/cpp/common/base64.html

grazie mille !
questo topic stra prendendo una belle “piega” !

però
tutto ok fino all’ultima riga !

jumpjack:
Finalmente sono riuscito a mandare la mia prima mail con telnet! Dal PC, ma con Arduino dovrebbe essere identico.

Ecco l’elenco di tutti i comandi (testato con virgilio e libero)

ehlo virgilio.it
auth login
[utente@virgilio.it in BASE64]
[password in BASE64]
MAIL FROM:utente@virgilio.it

non mi prende la sintassi del MAIL FROM !
ho provato maiuscolo/minuscolo con e senza <>, con lo spazio tra i : e la mail … nulla !
mi da sempre errore “501 Syntax error in parameters or arguments to MAIL command”

jumpjack: Nota: virglio non mi fa mandare mail ad altri che... me stesso, libero invece sì.

ti restituisce qualche errore? se no magari semplicemente ci mette un po' ad inviare la mail...

@zaio73: prova a scrivere HELP, magari il comando ha una sintassi diversa

@ lesto

questa parte è ok :

ehlo virgilio.it
auth login
[utente@virgilio.it in BASE64]
[password in BASE64]

quì invece mi da problemi :

MAIL FROM:utente@virgilio.it

dandomi errore di sintassi

dunque non è “ehlo” ma “helo”

poi io ho provato (col server in.virgilio.it, porta 25)

mail from:asd@io.it
553 asd@io.it unable to verify address
mail from:asd@virgilio.it
250 MAIL FROM:asd@virgilio.it OK

però poi… (non ho un account)

rcpt to:bifrost@hotmail.it
550 RCPT TO:bifrost@hotmail.it Relaying not allowed - please use SMTP AUTH

zaio73, sicuro che non usi il tasto cancella(backspace)? perché in telnet non si può cancellare…