Pessoal, tenho um código que peguei aqui do site inclusive (http://labdegaragem.com/forum/topics/enviar-e-mail-de-alerta-com-et...)

E estou com dificuldades para fazer o mesmo funcionar!

//Incluindo a biblioteca EtherCard
#include <EtherCard.h>
#include <EthernetClient.h>
#include <SPI.h>

//Setando Mac do EtherCard
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0X30,0X31 };

//Setando Ip do EtherCard
static byte myip[] = {192,168,1,110};
static byte gwip[] = {192,168,1,1};
static byte dnsip[] = {187,45,96,96};

//Buffer máximo de dados que vão ser guardados
byte Ethernet::buffer[500];


EthernetClient client;

void setup() {
//Definindo a porta para MonitorSerial
Serial.begin(57600);
//Print teste
Serial.println("[Teste]");
//Faz conexão com a placa na CS vai na PORTA 10 do Arduino, se tudo correr bem vai retornar diferente de 0
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println("Não foi possivel conectar com o EtherCard");
else
Serial.println("Conectado com sucesso ao EtherCard");
//Inserindo o Endereço de IP.
// ether.staticSetup(myip, gwip, dnsip);

if (!ether.dhcpSetup())
Serial.println("DHCP failed");

ether.printIp("IP: ", ether.myip);
ether.printIp("GW: ", ether.gwip);
ether.printIp("DNS: ", ether.dnsip);
}

void loop() {

word pos = ether.packetLoop(ether.packetReceive());
// delay(500);

byte EntradaSerial;
EntradaSerial = Serial.read();
if(EntradaSerial == 'e'){
envia();
}

}

void envia()
{
delay(1000);
Serial.println("Conectando");
if (client.connect("187,45,96,10", 587))
{
Serial.println("Conectado");
client.println("HELO localhost");
recebe();

delay(1000);
client.println("AUTH LOGIN");
recebe();
delay(1000);


client.println("XXX"); // Email de login em base de 64: http://base64-encoder-online.waraxe.us/
recebe();
delay(1000);



client.println("XXX"); // Senha do email em base de 64: http://base64-encoder-online.waraxe.us/
recebe();
delay(1000);

client.println("mail from: <vb@mhnet.com.br>"); //Email remetente
recebe();
delay(1000);

client.println("rcpt to: <vinicius_back@hotmail.com>"); // Email destinatário
recebe();
delay(1000);

client.println("data");
recebe();
delay(1000);

client.println("Subject: Teste BYTE IP de Email!"); // Assunto
recebe();
delay(1000);

client.println("Testando email com arduino 2"); // Corpo
recebe();
delay(1000);

client.println("."); // Indica fim do email.
recebe();
delay(1000);

client.println();
recebe();
delay(1000);

Serial.println("email enviado!");
delay(1000);
if (client.connected()){ // Desconecta pra deixar pronto para novo envio.

Serial.println();
Serial.println("desconectando...");
client.stop();
Serial.println();
Serial.println();
}
}
else
{
Serial.println("connection failed");
}
Serial.println("Ready. Press 'e' to connect.");
}

void recebe()
{
while (client.available())

{
char c = client.read();
Serial.println(c);
}
}

########################################

Na saída do serial monitor ele até diz que o e-mail for enviado mas quando verifico na caixa de entrada não tem nada.

Outra coisa que não estou conseguindo entender, é a função recebe(), que no meu entendimento teria que retornar as respostas do servidor, seguindo um tutorial de telnet ("http://pt.wikihow.com/Enviar-um-Email-Usando-a-Telnet"), deveriam aparecer as seguintes respostas vindas do servidor!

Esse tutorial foi baseado em EthernetShield, e eu estou usando EtherCard. 

Saída do Serial Monitor

[Teste]
Conectado com sucesso ao EtherCard
IP: 192.168.1.102
GW: 192.168.1.1
DNS: 187.45.96.96
Conectando
Conectado
email enviado!
Ready. Press 'e' to connect.

Obrigado a todos!

Att ViniciuS

Exibições: 600

Responder esta

Respostas a este tópico

esse codigo nao vai funcionar pq as sintaxes sao da biblioteca usada para o ethernet shield w5100

eu uso a biblioteca ETHER_28j60

nela vc usa por ex. a funçao ethernet.print no lugar de client.print 

e a inicializaçao da comunicaçao com a rede eh diferente tb

entao aconselho rever as sintaxes para esse seu shield

bons projetos!!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço