Pages: [1]   Go Down
Author Topic: Errore invio email arduino ethernet shield  (Read 1241 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buon giorno a tutto il foro smiley-grin
Per un progetto ho bisogno di inviare una mail a un indirizzo di posta elettronica utilizzando yahoo, riesco a collegarmi a yahoo ma non riesco a mandare la mail desiderata...Sapreste aiutarmi? Non riesco a capire perché non manda la mail!! Questo è il codice:
Code:
#include <SPI.h>
 #include <Ethernet.h>

 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 byte ip[] = { 192,168,1, 9 };
 
 byte server[] = { 98 , 138 , 84 , 55 };

 String Subject = "Messaggio di prova!";
 String Body = "Una riga di testo prova";

 int time = 1000;
 int wait = 1000;
 
 EthernetClient client;
 
 void GetResponse() {
    if (client.available()) {
         char c = client.read();
         while (client.available()) {
           ServerResponse +=c;
           c = client.read();
         }
    Serial.println("<<<" + ServerResponse);
    ServerResponse="";
  }
 }

 void SendMsg(String m) {
   client.println(m);
   Serial.println(">>>" + m);
   delay(wait);
   GetResponse();
 }


 void setup()
 {
  Serial.begin(9600);
  Serial.println("Attendere il router...");
  delay(time);

  Serial.println("Inizio network module...");
  Ethernet.begin(mac, ip);
  delay(2000);

  Serial.println("Connessione...");
  if (client.connect(server, 465)) {
     Serial.println("Connessione riuscita!");

     SendMsg("EHLO yahoo.it");
     SendMsg("AUTH LOGIN ");
     SendMsg("Username in base64");
     SendMsg("Password in base64");
     SendMsg("MAIL From:<xxxxxxxxx>");
     SendMsg("RCPT To:<xxxxxxxxx>");
     SendMsg("DATA");
     SendMsg("To: xxxxxxxxx");
     SendMsg("From: xxxxxxxxx");
     SendMsg("Subject: "+ Subject);
     SendMsg("");
     SendMsg(Body);
     SendMsg("");
     SendMsg(".");
     SendMsg("QUIT");
     client.println();

  } else {
    Serial.println("Connessione fallita!");
  }
 }

 void loop()
 {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
 }


Grazie in anticipo  smiley-grin
Logged

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sembra che il server non ti dia nessuna risposta o erro??

Code:
S: telnet qualcheparte 25
R: 220 qualcheparte Simple Mail Transfer Service Ready

S: HELO miohost
R: 250 miohost

S: MAIL FROM:<Marco@miohost>
R: 250 OK

S: RCPT TO:<Roberto@suohost>
R: 250 OK

S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>

S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK

S: QUIT
R: 221

non vedo le risposte del server..forse è bene ke le stampi ogni volta che mandi un mess
Logged

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2272
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova ad inviare il messaggio prima con telnet almeno vedi bene dove si inceppa.
I comandi da inviare sono gli stessi
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 4956
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sei sicuro che yahoo accetti l'invio di email anonime, cioè senza essersi autenticati?
Alcuni provider non lo accettano.
Logged

my name is IGOR, not AIGOR

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non so come farli con il computer :S cioè scrivo tramite il "cmd" telnet ma mi dice che non lo riconosce come comando interno o esterno D: Illuminatemi per favore! Comunque io mi autentico, ho messo xxxx per coprire mail username e password smiley
Logged

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

scaricati PuTTY
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scarico putty e poi faccio un collegamento telnet all'ip 98.138.84.55? Spiegatemelo che sono ingnorante in materia..
Logged

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

in hostname metti l'indirizzo del server, poi metti la porta (nel tuo caso 465), poi selezioni connection type telnet e poi open

una volta aperto scrivi la mail

S: HELO miohost
<risposta server>
S: MAIL FROM:<xxx@miohost>
<risposta server>
S: RCPT TO:<yyy@suohost>
<risposta server>
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>

S: Blah blah blah...
S: ...etc. etc. etc.
S: .
<risposta server>
S: QUIT
R: 221

ok??

guarda questo link http://playground.arduino.cc/Italiano/Mail
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok ho risolto!! smiley
Il problema era la porta 465 perché con arduino accedevo a Internet attraverso un ISP che stava bloccando la porta SMTP. Ho provato a impostare la porta SMTP su 587 e ora funziona perfettamente, grazie mille a tutti! smiley
Logged

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2272
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Approfitto di questa discussione per chiedere una cosa.
Usando l'arduino per inviare/ricevere email è come se usassimo telnet; si sa che è molto sconsigliato perchè i vari demoni sniffer potrebbero facilmente intercettare la comunicazione e rubare i dati sensibili (utente e password).
C'è un modo per aumentare la sicurezza, magari criptando i dati sensibili?
Si potrebbe usare ssh con arduino?
Logged

Switzerland
Online Online
Faraday Member
**
Karma: 114
Posts: 5962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per user/psw devi mettere in piedi lo stack SSL ed avere un provider che accetti l'autenticazione criptata (es. gMail ... ma ormai quasi tutti) e ... non è cosa proprio leggerissima (è uno dei moduli che si trova nella libreria TCP della MicroChip ... il LORO help indica come occupazione del compilato, con TUTTE le ottimizzazioni possibili, oltre 35 KB di codice e quasi 2KB di RAM) ...

Altra cosa è criptare, in modo più o meno sicuro, i dati che trasmetti. smiley

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Pages: [1]   Go Up
Jump to: