C++ y NMSMTP
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
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
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.
//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.
