Ver Mensaje Individual
  #8  
Antiguo 10-05-2011
crimachama crimachama is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 3
Reputación: 0
crimachama Va por buen camino
Envío de mail con indy 9

Cita:
Empezado por maximo_nashir Ver Mensaje
Hola, lo primero es que tuve que utilzar delphi 7 y los componentes Indy 9.0 que trae.

*Utilize los siguientes componentes Indy:
1.- TidSMTP (al cual le puse como nombre: SMTP)
2.- TidMessage (al cual le puse como nombre:MailMessage)
3.- TidSSLIOHandlerSocket (al cual le puse como nombre:idSSLIOHandlerSocket1).

*Componentes extras que utilizé:
1.- TOpenDialog (al cual le puse como nombre:AttachmentDialog).
2.- Seis componentes TLabeledEdit (Los cuales eran: uno para el "host", otro para el "From" o "De parte de:", otro para el "To" o "Para", otro para el "CC" o "Copia a:", otro para el "Subject" o "Título del mail", y el último para que puciera la dirección del archivo que vaya a adjuntar.
3.- Dos TMemo; Uno que se llamó "StatusMemo":el cual me devolvia todos los errores que pudicen occurrir para enviar el mail; Y el otro memo le puse como nombre "Body", el cual representaba el cuerpo del mail, es decir donde hiba a escribir los detalles del mail.
4.- Dos TBitBtn. El primero se llamó: btnSendMail, en el cual puse el siguiente código:

Código Delphi [-] StatusMemo.Clear;

//Seteando el SMTP
SMTP.Host := ledHost.Text;
SMTP.Port := 465;

//setup mail message
MailMessage.From.Address := ledFrom.Text;
MailMessage.Recipients.EMailAddresses := ledTo.Text + ',' + ledCC.Text;

MailMessage.Subject := ledSubject.Text;
MailMessage.Body.Text := Body.Text;

if FileExists(ledAttachment.Text) then
TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);

//Enviando el mail
try
try
SMTP.Connect(1000);
SMTP.Send(MailMessage);
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;





El Segundo botón se llamó: btnAttachment, en el cual puse el siguiente código:


Código Delphi [-] if AttachmentDialog.Execute then
ledAttachment.Text := AttachmentDialog.FileName;





NOTA: Debes poner en las siguientes propiedades del componente TidSMTP, las siguientes opciones o textos. En IOHandler debes poner: IDSSLIOHandlerSocket1, en AuthenticationType, ponerle: atLogin, en Password, debes poner la clave del mail que envia, en Username debes poner el mail que envia. Las otras opciones que debe de tener ya dicho componente las trae por defecto, asi que hasta ahí está bien.

OJO: Todo esto de poner tu mail y tu clave, es porque lo que va a authenticar que no es un spam, es el hecho de que tu pongas un mail y clave validos de un servidor reconocido (Ya sea gmail, hotmail, yahoo, etc.) y entonces si te son permitidos los envios de mail a traves de tu aplicación Delphi.


Ojalá, te pueda servir de algo estos comentarios y observaciones.



Como resolviste el problema de envio de mail con indy 9?????
Responder Con Cita