Hola Burasu, a mi me pasaba lo mismo, eso pasa por que algunos servidores necesitan una autentificacion para poder enviar mensajes a otros servidores que no sean el propio.Yo lo solucione gastando Los componentes Indy, para ello tuve que pasarme de Delphi 4 a Delphi 7 y con el siguiente codigo me funcionó de lujo.
Código Delphi
[-]
var
i:integer;
begin
Memo.Lines.Add('Verificando el Usuario...');
form6.ShowModal;
if(Form6.Desconectar=0) Then
begin
Memo.clear;
IdSMTP1.AuthenticationType :=atLogin;
IdSMTP1.Username := trim(txtUsuario.Text);
IdSMTP1.Password :=trim(txtclave.Text) ;
IdSMTP1.Host:=trim( txtServidor.Text );
IdSMTP1.Port:=25;
try
Memo.Lines.Add('Conectando con ' + trim( txtServidor.Text ) + ', puerto 25' );
IdSMTP1.Connect;
Except
Memo.lines.add('Fallo en la conexion con el servidor SMTP.');
Exit;
end;
Memo.lines.add( 'Componiendo mail ...' );
with Mensaje do begin
if ( trim( txtDe.Text ) <> '' ) then
From.Text:= trim( txtDe.Text )
else
From.Text:='[email protected]';
Memo.lines.add( 'Direccion origen : ' + From.Text );
Recipients.EMailAddresses:=( trim( txtPara.Text ) );
Memo.lines.add( 'Dirección destino : ' + trim( txtPara.Text ) );
if( trim( txtCC.Text ) <> '' ) then begin
CClist.EMailAddresses:=( trim( txtCC.Text ) );
Memo.lines.add( 'CC : ' + trim( txtCC.Text ) );
end;
if( trim( txtAsunto.Text )='' ) then
subject:='[Sin titulo]'
else
subject:= trim( txtAsunto.Text );
Memo.lines.add( 'Asunto : ' + subject );
if ( trim( txtAdjunto.Text ) <> '') then
begin
TIdAttachment.Create(Mensaje.MessageParts,txtAdjunto.Text );
Memo.lines.add( 'Archivo Adjunto : ' + trim( txtAdjunto.text ) );
end;
if(MemoAdjunto.Visible=true) then
begin
for i:=0 to MemoAdjunto.Lines.Count-1 do
TIdAttachment.Create(Mensaje.MessageParts,MemoAdjunto.Lines[i] );
Memo.lines.Add( 'Archivos Adjuntos :');
Memo.lines.AddStrings( MemoAdjunto.Lines );
end;
if ( mCuerpo.Lines.Count > 0 ) then begin
body.Assign(mCuerpo.Lines);
Memo.lines.add( 'Añadiendo cuerpo del E-mail ...' );
Memo.lines.add( ' ' );
end;
Memo.lines.add( 'Enviando ... ');
if ( trim( txtPara.Text ) <> '' ) then begin
IdSmtp1.Send(mensaje);
Memo.lines.add( 'E-Mail enviado.');
end else
Memo.lines.add( 'E-Mail no enviado, no se especificó dirección de destino.' );
IdSmtp1.Disconnect;
end;
Memo.lines.add( 'Desconectado');
Se que hace unos meses que posteaste este asunto y que a lo mejor ya lo has solucionado, pero, de todas formas seguro que alguien le pasara lo mismo que a nosotros y aquí tienen la solución.
PD:En delphi 7 no funcionan o no lo lleva instalados por defecto los componentes NmSmtp.
Un saludo.
