响应服务器530 5.7.0,arduino - 我在尝试从Arduino和以太网盾发送电子邮件时从gmail服务器收到错误530 5.7.0 - 堆栈内存溢出...

博主在尝试使用Arduino和以太网屏蔽板通过Gmail服务器发送电子邮件时遇到了530 5.7.0的错误。他们分享了用于发送邮件的代码,并寻求帮助理解错误原因。错误发生在连接SMTP服务器并尝试发送邮件的过程中。

我在尝试从Arduino和以太网盾发送电子邮件时从gmail服务器收到错误530 5.7.0。

我想从我的arduino uno board发送一封电子邮件。 我为它买了一个以太网罩。 我找到了一个使用以太网屏蔽发送电子邮件的代码但是我失败了。 Gmail服务器说“530 5.7.0”错误代码,但我不知道这意味着什么。 我错了什么?

/*

Email client sketch for IDE v1.0.1 and w5100/w5200

Posted December 2012 by SurferTim

*/

#include

#include

// this must be unique

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x59, 0x67 };

// change network settings to yours

IPAddress ip( 10, 6, 0, 248 );

IPAddress gateway( 10, 6, 0, 1 );

IPAddress subnet( 255, 255, 255, 0 );

// change server to your email server ip or domain

// IPAddress server( 1, 2, 3, 4 );

char server[] = "smtp.gmail.com";

EthernetClient client;

void setup()

{

Serial.begin(9600);

pinMode(4,OUTPUT);

digitalWrite(4,HIGH);

Ethernet.begin(mac, ip, gateway, gateway, subnet);

delay(2000);

Serial.println(F("Ready. Press 'e' to send."));

}

void loop()

{

byte inChar;

inChar = Serial.read();

if(inChar == 'e')

{

if(sendEmail()) Serial.println(F("Email sent"));

else Serial.println(F("Email failed"));

}

}

byte sendEmail()

{

byte thisByte = 0;

byte respCode;

if(client.connect(server,25) == 1) {

Serial.println(F("connected"));

} else {

Serial.println(F("connection failed"));

return 0;

}

if(!eRcv()) return 0;

Serial.println(F("Sending helo"));

// change to your public ip

client.println(F("helo 1.2.3.4"));

if(!eRcv()) return 0;

Serial.println(F("Sending From"));

// change to your email address (sender)

client.println(F("MAIL From: "));

if(!eRcv()) return 0;

// change to recipient address

Serial.println(F("Sending To"));

client.println(F("RCPT To: "));

if(!eRcv()) return 0;

Serial.println(F("Sending DATA"));

client.println(F("DATA"));

if(!eRcv()) return 0;

Serial.println(F("Sending email"));

// change to recipient address

client.println(F("To: You "));

// change to your address

client.println(F("From: Me "));

client.println(F("Subject: Arduino email test\r\n"));

client.println(F("This is from my Arduino!"));

client.println(F("."));

if(!eRcv()) return 0;

Serial.println(F("Sending QUIT"));

client.println(F("QUIT"));

if(!eRcv()) return 0;

client.stop();

Serial.println(F("disconnected"));

return 1;

}

byte eRcv()

{

byte respCode;

byte thisByte;

int loopCount = 0;

while(!client.available()) {

delay(1);

loopCount++;

// if nothing received for 10 seconds, timeout

if(loopCount > 10000) {

client.stop();

Serial.println(F("\r\nTimeout"));

return 0;

}

}

respCode = client.peek();

while(client.available())

{

thisByte = client.read();

Serial.write(thisByte);

}

if(respCode >= '4')

{

efail();

return 0;

}

return 1;

}

void efail()

{

byte thisByte = 0;

int loopCount = 0;

client.println(F("QUIT"));

while(!client.available()) {

delay(1);

loopCount++;

// if nothing received for 10 seconds, timeout

if(loopCount > 10000) {

client.stop();

Serial.println(F("\r\nTimeout"));

return;

}

}

while(client.available())

{

thisByte = client.read();

Serial.write(thisByte);

}

client.stop();

Serial.println(F("disconnected"));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值