FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
IdSmtp
Hola,
Estoy empezando a utilizar los componentes indy, estoy intentando hacer una aplicacion para enviar mails, pero no consiguo que envie na de na, conecta y despues de un rato me dice conexion cerrada graciosamente, ¿alguien me puede decir que estoy haciendo mal?. Yo solo pongo la direccion de correo y el asunto con su correspondiente mensaje, claro, hay que indicarle alguna ip y algun usuario, de ser asi que ipe le asigno la mia o a donde quiero que llegue. Os agradeceria que me lo aclaraseis un poco, gracias. Pongo en el formulario IdSmtp y IdMessage |
#2
|
||||
|
||||
Hola volare!
El Mensaje se configura de la siguiente manera: Código:
with idMessage do begin // Cuerpo del mensaje. Body.Clear; Body.Add('Aqui añades el cuerpo del mensaje); // Cuenta Origen. From.Text := EMAILORIGEN; // Cuenta Destino. Recipients.EMailAddresses := EMAILDESTINO; // Asunto del email. Subject := ASUNTO; // Prioridad del mensaje, ALTA. Priority := TidMessagePriority(mpHighest); // Coloco el archivo adjunto el cual enviar. TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO); end; Código:
with idSMPT do begin // Configuro autentificación. AuthenticationType := atLogin; Username := USERNAME; // Nombre del usuario Password := PASS; // la password // Configuro el servidor SMTP. Host := HOST; Port := PUERTO; try Connect; try // Envio el mensaje. Send(idMenssage); finally Disconnect; end; Msg('Enviado Correctamente'); except // Capturo algunas excepciones que pueden ocurrir ON E: EIdProtocolReplyError do begin Msg('No se ha podido enviar el email.' + #13 + 'Incorrecto el email o el usuario o la password.'); end; on E: EFOpenError do begin Msg('No se ha podido enviar el email.' + #13 + 'Fichero Adjunto desconocido o erróneo.'); end; on E: EIdSocketError do begin Msg('No se ha podido enviar el email.'+ #13 + 'Host desconocido o incorrecto.'); end else begin Msg('Fallo en el envio de email'); end; end; if connected then Disconnect; end Salu2! |
#3
|
||||
|
||||
No me reconoce los identificadores EIdProtocolReplyError y EIdSocketError, algun comentario de lo que pueda ser??. Otra cosa sabes de alguna pag. que explique estos tipos de errores y que los enumere uno a uno??.
Te paso mi codigo y me dices si ves algo mal, en host eh puesto mi ip y el puerto eh dejado el que viene por defecto el 25 Código:
procedure TForm1.Button1Click(Sender: TObject); begin IdMessage1.Body.Clear; //el texto del mensaje IdMessage1.Body.Add(Memo1.Lines.Text); //direccion en donde quiero enviarlo IdMessage1.ReceiptRecipient.Address := Edit1.Text; //el asunto IdMessage1.Subject := Edit2.Text; IdSmtp1.Connect; IdSmtp1.Send(idMessage1); IdSmtp1.Disconnect; end; end. Última edición por VolaRe fecha: 19-03-2004 a las 10:31:37. |
#4
|
||||
|
||||
Cita:
La regla de oro para lidiar con este tipo de errores en un código que provenga de una fuente confiable- como evidentemente es el caso -es usar la opción "Find in Files..." del menú "Search" para localizar la unidad adecuada que, en este caso, resulta ser IdException. // Saludos |
#5
|
||||
|
||||
gracias roman,
despues de solucionar este pequeño error, cuando envio el mail me indica, fallo en el envio de mail, a que puede ser que no me envie el mail???. Ahora ya sabemos que no es de host ni de pass ni de socket, es de mail, que es lo que significa esto??? pues no tengo ni idea, haber si me respondeis, os lo agradeceria. Y a ti nuria gracias por todo el codigo puesto, sobre todo por las excepciones, que no sabia ni que existieran. |
#6
|
||||
|
||||
Cita:
Código:
else begin Msg('Fallo en el envio de email'); raise; end; // Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|