Arduino ethernet shield fail to send email----please help???????

I use yahoo smpt server (77.238.184.40) and u decode my email and password to base64
here the code
please help

#include <Ethernet.h>
#include <SPI.h>
byte mac[] = { 0x64, 0xB9, 0xE8, 0xC3, 0xC7, 0xE2 };
byte ip[] = { 192,168,1, 101 };
byte server[] = {77,238,184,40}; // Mail server address. Change this to your own mail
#define time 1000
EthernetClient client;
int get1 =0;

unsigned long lastMessage;
///////////////////////////////////////////////////////////////////////////////////////

// function to get the temperature for a device

void setup()
{
lastMessage = 0;
Ethernet.begin(mac, ip);
Serial.begin(9600);
// Start up the sensors library

// set the resolution

delay(1000);

}
void loop()
{
   get1 = Serial.read();
if (client.available()) {checkEmail();}
if (get1 == '1') {
  Serial.println("sending");
  delay(time);
  sendEmail() ;
  
}
}
void sendEmail() {
Serial.println("connecting...");
if(client.connect(server, 995)>0) {
Serial.println("connected");
client.println("EHLO MYSERVER"); delay(time); // log in
client.println("AUTH LOGIN"); delay(time); // authorise
// enter your username here
client.println("Email"); delay(time);
// and password here
client.println("password"); delay(time);
client.println("MAIL FROM:<zhiran.taha@yahoo.com>"); delay(time);
client.println("RCPT TO:<zhirantaha@hotmail.com>"); delay(time);
client.println("DATA"); delay(time);
client.println("From: <zhiran.taha@yahoo.com>"); delay(time);
client.println("To: <zhirantaha@hotmail.com>"); delay(time);
client.print("SUBJECT: ");
client.println("test"); delay(time);
client.println(); delay(time);
client.println("text1"); delay(time);
client.println("text2"); delay(time);
client.println("."); delay(time);
client.println("QUIT"); delay(time);
Serial.println("Email sent.");
lastMessage=millis();
} else {
Serial.println("connection failed");
}
}
void checkEmail() { // see if any data is available from client
while (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
}

and when i try to send email
i get this result

sending
connecting...
connected
Email sent.
220 smtp110.mail.ukl.yahoo.com ESMTP
250-smtp110.mail.ukl.yahoo.com
250-AUTH LOGIN PLAIN XYMCOOKIE
250-PIPELINING
250-SIZE 41697280
250 8BITMIME
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
530 Access denied

disconnecting.
client.println("EHLO MYSERVER"); delay(time); // log in

EHLO? Most times that's spelled HELO.

I GET THIS

sending
connecting...
connected
Email sent.
220 smtp123.mail.ukl.yahoo.com ESMTP
250 smtp123.mail.ukl.yahoo.com
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
530 Access denied

disconnecting.

EHLO is the enhanced SMTP version of HELO. Most SMTP servers now support enhanced SMTP.

220 smtp110.mail.ukl.yahoo.com ESMTP

This server is reporting that it supports Enhanced SMTP.

Yahoo mail uses port 995 for receiving email (POP), not sending (SMTP). That is port 465, but that requires SSL. The ethernet library does not have that capability.

And it requires a "Yahoo Mail Plus" account to use that port the last time I checked.

edit: I wait for a response from the email server after each of those sends. But that is just me.

I used gmail same problem

sending
connecting...
connected
Email sent.
220 mx.google.com ESMTP fb20sm8661239wid.1
250-mx.google.com at your service, [95.159.97.9]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
530 5.7.0 Must issue a STARTTLS command first. fb20sm8661239wid.1
502 5.5.1 Unrecognized command. fb20sm8661239wid.1
502 5.5.1 Unrecognized command. fb20sm8661239wid.1
530 5.7.0 Must issue a STARTTLS command first. fb20sm8661239wid.1
530 5.7.0 Must issue a STARTTLS command first. fb20sm8661239wid.1
530 5.7.0 Must issue a STARTTLS command first. fb20sm8661239wid.1
502 5.5.1 Unrecognized command. fb20sm8661239wid.1
502 5.5.1 Unrecognized command. fb20sm8661239wid.1
554 5.7.0 Too Many Unauthenticated commands. fb20sm8661239wid.1

disconnecting.

530 5.7.0 Must issue a STARTTLS command first. fb20sm8661239wid.1

The Gmail email server is asking you to start your TLS. The ethernet library has no TLS capability. :(

You must determine the email server responsible for the receiver email domain and use port 25. If the server does not use an email filter like SpamHaus, you will be able to send to that domain only. SpamHaus is notorious for blocking residential ip address ranges.

I have my own email server on a commercial static ip account. It is easier that way.

So now what is the solution???????????

I don't know. Have you tried sending that email directly to the hotmail email server on port 25? I don't know what you local hotmail server is, but you can find out with nslookup. From a command prompt:

nslookup
set query=mx
hotmail.com

It should give you a preference list and ips of your local hotmail email servers.

i get the ip's no what should i do?

Here is the code I use to send email to Gmail.com accounts. http://arduino.cc/forum/index.php/topic,104449.msg784053.html#msg784053 If you use that, you must be sending TO a gmail.com address. Same procedure for finding the email server for it.

You will replace the gmail email server ip with the hotmail email server ip. Use port 25. Then you must be sending TO a hotmail.com address.

Insure the domain of the sender is valid.

If this all seems like a real pain in the backside, then be sure to thank your local spammer. ;)

which ip may i use and thanks :)

You should be able to use any of those. Try the top one. They usually rotate the same server ips over and over for a while. Every now and then, they replace one ip with another as they service their equipment.

the code that you send me you don't write password how the email can be send without password???

how the email can be send without password???

Password?!! Don't need no stinkin' password!! 8)

You are sending email like an email server sends email, not like an email client sends email.

i get this error :(

Ready. Press 'e' to send
connected
220 BAY0-MC1-F23.Bay0.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.microsoft.com/en-us/anti-spam.mspx. Sat, 21 Jul 2012 12:31:48 -0700 
250 BAY0-MC1-F23.Bay0.hotmail.com (3.15.0.97) Hello [95.159.97.9]
550 DY-001 (BAY0-MC1-F23) Unfortunately, messages from 95.159.97.9 weren't sent. Please contact your Internet service provider. You can tell them that Hotmail does not relay dynamically-assigned IP ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.

Remember what I told you about SpamHaus and blocking residential accounts? Well, your ip has been blocked by the hotmail email server as a dhcp account. That is why my email server is a commercial static ip account.

can i use other server's? like gmail or yahoo

Generally speaking, no. Thanks to the spammers, most of the commercial email providers block unsolicited access.

so you mean there is no way to work?????????