Gracias naker, pero la unica diferencia con el mio es que le pasas el UserID, y lo he intentado asi y va igual. Mirad, aqui teneis la funcion completa, con copiar y pegar se puede probar y decirme si funciona.
procedure TForm1.ENVIAR_CORREO(WHOST: String; WPORT: Integer; WDIRREM, WDIRDEST, WASUN, WMEN: String);
begin
if InetIsOffline(0) then
begin
ShowMessage('No conectado a Internet');
Exit;
end;
////
with NMSMTP1 do
begin
// Host y Puerto de correo ...
Host:=WHOST;
Port:=25;
UserID:='usuario@terra.es';
// conectando ...
try
Memo1.Lines.Add('Conectando con '+ WHOST +', puerto '+ EPort.Text);
Connect;
except
Memo1.Lines.Add('Fallo en la conexion con el servidor SMTP.');
Exit;
end;
Memo1.Lines.Add('Componiendo mail ...');
// borra parametros por defecto ...
ClearParameters();
// Dirección origen ...
PostMessage.FromAddress:=WDIRREM;
Memo1.Lines.Add('Direccion origen: '+ PostMessage.FromAddress);
// Dirección destino. Se pueden indicar varias ( TStringList ) ...
PostMessage.ToAddress.Add(WDIRDEST);
Memo1.Lines.Add('Dirección destino: '+ PostMessage.ToAddress.Text);
// Titulo del mail ...
PostMessage.Subject:=WASUN;
Memo1.Lines.Add('Subject: '+ PostMessage.Subject);
// Ficheros adjuntos. Se pueden indicar varios ( TStringList ) ...
PostMessage.Attachments.Add('jdd.txt');
Memo1.Lines.Add('Ficheros adjuntos: ' + PostMessage.Attachments.Text);
// Cuerpo del mail ...
PostMessage.Body.Clear;
PostMessage.Body.Text:=WMEN;
Memo1.Lines.Add('Añadiendo cuerpo del mail ...');
// Enviando mail ...
Memo1.Lines.Add(' ');
Memo1.Lines.Add( 'Enviando ... ');
SendMail;
Memo1.Lines.Add('Mail enviado.');
// Desconectando ...
Disconnect;
Memo1.Lines.Add('Desconectado');
end;
end;
Para la llamada:
ENVIAR_CORREO(EHost.Text, StrToInt(EPort.Text), EDirOrigen.Text, EDirDest.Text, EAsunto.Text, EMen.Text);
REPITO, funciona para los emails de terra, pero no para msn, por ejemplo, que me muestra el error "503 No Recipients Especified"
Muchas gracias de nuevo, sois los mejores.
Ciao.
|