la prima parte magari dipende dall'interazione che usi nel software, io con c# uso questo codice e ricevo anche gli errori di risposta
// creazione messaggio
MailMessage email = new MailMessage();
email.From = new MailAddress("mittente@gmail.com");
email.To.Add(new MailAddress("destinatario@provider.com"));
email.Subject = "oggetto";
email.Body = "body";
// generazioni credenziali di login
NetworkCredential SMTPUserInfo = new NetworkCredential("mittente", "passwd");
// allocazione del server
SmtpClient mailClient = new SmtpClient("smtp.gmail.com");
mailClient.Port = 587;
mailClient.EnableSsl = true;
mailClient.Timeout = 20000;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = SMTPUserInfo;
mailClient.Send(email);
--------------------------------------
IDE: Visual Studio 2008 Professional Edition
IDE: Visual Studio 2010 Express