Has anyone had any issues using this to send email?
I have only had my Netduino Plus 2 for about a week, and I struggled to get it to send email. I setup a new project following Stefan's instructions above (Thank you so much Stefan!!) and I tried to send email to my Gmail, GMX.com, and my AT&T accounts, but I continuously got errors trying to send the email. The Netduino would send a "HELO" and I would get a response but was never able to login or send an email. I am a total nood and had to do a lot of research to figure out what was happening and what was supposed to happen. I finally discovered that the commands in the _Send of the STMP_Client.cs were not sending the correct commands at the correct times. I needed to send a "EHLO" instead of a "HELO" and the "AUTH LOGIN" needed to also include the UserID.
So my question is what changed? Obviously a lot of people have been using this and it has been working fine. I could not find anything on here about anyone else having these issues, So does anyone have any idea what is different? I can now send email through mail.gmx.com and smtp.att.yahoo.com (port 587) but still cannot send email through Gmail so any guidance would be greatly appreciated.
The commands that I finally got to work for GMX and AT&T are as follows:
// Reads and validates the first line of dataText = this._Socket.Receive(true);if (Text.Substring(0, 3) != "220") { Error = Text; break; }// Say "hello!"this._Socket.Send("EHLO " + this._LocalHostname + "rn");while (Text.Substring(4,8) != "STARTTLS"){ Text = this._Socket.Receive(true); if (Text.Substring(0, 3) != "250") { Error = Text; break; } // Authenticates with the LOGIN authentication typethis._Socket.Send("AUTH LOGIN " + Tools.Base64Encode(this._SMTP_User) + "rn");Text = this._Socket.Receive(true);if (Text.Substring(0, 3) != "334") { Error = Text; break; }// Sends the password, base64 encodedthis._Socket.Send(Tools.Base64Encode(this._SMTP_Pass) + "rn");Text = this._Socket.Receive(true);if (Text.Substring(0, 3) != "235") { Error = Text; break; }// Specifies the sender and validates the responsethis._Socket.Send("MAIL FROM:<" + From + ">rn");Text = this._Socket.Receive(true);if (Text.Substring(0, 3) != "250") { Error = Text; break; }// Specifies the receiver and validates the responsefor (int Counter = 0; Counter < Recipients.Length; ++Counter){ this._Socket.Send("RCPT TO:<" + Recipients[Counter] + ">rn"); Text = this._Socket.Receive(true); if (Text.Substring(0, 3) != "250") { Error = Text; break; }}// Initializes data transferthis._Socket.Send("DATArn");Text = this._Socket.Receive(true);if (Text.Substring(0, 3) != "354") { Error = Text; break; }// Sends the actual datathis._Socket.Send(Data + "rn.rn");Text = this._Socket.Receive(true);if (Text.Substring(0, 3) != "250") { Error = Text; break; }