Estoy tratando de hacer una aplicación de envio de correo usando componentes de Indy. En mi proyecto he anexado los siguientes objetos:
TButton *Button1;
TIdMessage *IdMessage1;
TIdSMTP *IdSMTP1;
y dentro del evento del botón el siguiente código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdMessage1->Subject = "Hola";
IdMessage1->Body->Text = "Cuerpo del correo";
IdMessage1->From->Address = "llinazoufri@gmail.com";
IdMessage1->Recipients->Add();
IdMessage1->Recipients->Items[0]->Address = "llinazoufri@hotmail.com";
__try
{
IdSMTP1->UserId = "llinazoufri";
IdSMTP1->Password = "xxxxxx";
IdSMTP1->Host = "smtp.gmail.com";
IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->SocksInfo->Authentication = saUsernamePassword;
IdSMTP1->Port=587 ó 465;
IdSMTP1->Connect();
IdSMTP1->Authenticate();
IdSMTP1->Send(IdMessage1);
}
__finally
{
if(IdSMTP1->Connected())
IdSMTP1->Disconnect();
}
}
Al correr mi programa y dar click en el botón me aparece el siguiente error:
530.5.7.0 Must Issue a STARTTLS command first h9sm9521071wxd
Ya he intentado varios correciones en mi código para poder eliminar este error, pero esto no me ha sido posible, espero que alguien me pueda hechar una mano con esto, ya que he buscado todos los ejemplos posibles para esto, hasta uno del foro hecho por Leo al cual el único cambio significativo que le hago es el del puerto pero igual no me funciona. Anexo la ayuda de gmail para correo smtp:
Configuración de otros clientes de correo
A continuación te proporcionamos la información necesaria para configurar el acceso POP en varios clientes de correo. Si tienes dificultades para ello, te recomendamos que te pongas en contacto con el departamento de atención de tu cliente de correo para obtener instrucciones adicionales.
El servidor de correo entrante (POP3) requiere SSL: pop.gmail.com
Usar SSL: Sí
Puerto: 995
El servidor de correo saliente (SMTP) requiere TLS: smtp.gmail.com (usar autenticación)
Usar autenticación: Sí
Usar STARTTLS: Sí (en algunos clientes se denomina SSL)
Puerto: 465 ó 587
Nombre de cuenta: tu nombre de usuario de Gmail (incluido '@gmail.com').
Dirección de correo electrónico: tu dirección de correo completa de Gmail (username@gmail.com)
Contraseña: tu contraseña de Gmail
Por favor, ten en cuenta que si tu cliente no admite la autenticación SMTP, no tendrás acceso a tus mensajes de Gmail.
Espero alguien me pueda colaborar. Suerte....
_________________
Entre más sé, se que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Ingeniería:
http://www.matpi.tk Turismo:
http://www.hbromelias.tk