C++ y NMSMTP

erfedecai
28 de Diciembre del 2005
Muy buenas!!

Estoy haciendo una aplicación en la que me interesa mandar correos electrónicos. He utilizado el componente TNMSMTP de FastNet. La cuestión es que la primera vez que ejecuto el código funciona; conecta al servidor smtp, manda el correo y cierra la conexión; pero si intento mandar otro correo inmediatamente me da un error: "Incomplete Header". Así hasta que le da la gana de nuevo y me lo envía otra vez. El fallo está en el SendMail del componente, que no se si no cerrará bien la conexión (aunque al poner la condición me indica que si está cerrada) o no sé. Quizás sea el servidor..., no sé, el caso es que es un coñazo, porque me interesa que pueda enviar seguidamente varios correos. Si tienen alguna idea de esto les agradeceré su ayuda.

El código:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(f->Connected){
f->Disconnect();
}
else{
f->Connect();
if (f->Connected)
f->SendMail();
f->Disconnect();
}


}

Tantos if son por las comprobaciones

Un abrazo

erfedecai
28 de Diciembre del 2005
He solucionado el problema. Por lo visto tengo que incluir siempre el destino:

//Si el destinatario no se actualiza cada vez que se quiera enviar un correo
//da un error Incomplete Header
f->PostMessageA->ToAddress->Text = Edit1->Text;
//ShowMessage("Se envía un correo a "+ f->PostMessageA->ToAddress->Text);
if(f->Connected)
f->Disconnect();
else{
f->Connect();
f->SendMail();
f->Disconnect();
ShowMessage("Enviado");
}

Pensaba que solamente introduciendo en los parametros del objeto NMSMTP valía. Pero por lo visto no. Ahora el problema es que si el host del servidor smtp es erroneo me da este error: Host loockFaild; y luego: Null Remote Adress. Hasta ahí logico ya que no existe dicho servidor, pero al cambiarlo de nuevo al correcto sigue fallando hasta que no reinicio la maquina, ¿por qué?

Muchas gracias por todo.