Cita:
Empezado por JADE_TYLER
Hola maximo_nashir
Lei el problema que estas teniendo y quisiera saber si en contraste una forma de mandar mail. Yo al igual que tu he estado intentando mandar un mail tambien dentro de una red privada una LAN, estoy dentro de una empresa que tiene su propio dominio y utiliza propio servido para el correo electronico es un Microsoft Exchange, como podria mandar un correo desde Delphi en este escenario?
Lo intente mandar por el servido de hotmail y no funciono.
|
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;
SMTP.Host := ledHost.Text;
SMTP.Port := 465;
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);
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.