Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Crear proyecto paso a paso que mande mails (https://www.clubdelphi.com/foros/showthread.php?t=65113)

JADE_TYLER 21-11-2009 05:04:24

Crear proyecto paso a paso que mande mails
 
Hola a todos.
Estoy ahora intentando hacer con delphi una aplicacion que mande correo electronico a una direccion de outlook con archivos adjuntos y ya probe de varias formas, con componentes indy, funcion que manda mail. Con ejemplos, sin exito.

Pero creo que debe ser la version con la que trabajo es Delphi 6, entonces quiero que me guien en hacer el programa para mandar mail desde cero o si ya existe un tema asi, pasarme el link.

Bueno muchas gracias.

aeff 22-11-2009 07:11:27

Saludos, bueno mira, yo uso Delphi 5, en esta versión existe en la paleta "FastNet" el componente "TNMSMTP".

Este componente es muy fácil de manipular, solo tienes que jugar con sus propiedades.

Cita:

Host -> Direccion del servidor, ej: mail.clubdephi.com
UserID -> Nombre de cuenta del usuario, ej: aeff
dentro de la propiedad PostMessages te encontraras con las especificaciones del propio correo:

Cita:

Attachments -> Lista de archivos adjuntos, ej: C:\Windows\System32\Calc.exe ...
Body -> Texto del correo
Date -> Fecha del correo
FromAddress -> Dirección de correo del emisor, en este caso tu ¿no? , ej: jade_tyler@clubdelphi.com
FromName -> Nombre del emisor, ej: Jade Tyler
LocalProgram -> Programa local, ej: "Delphi's Outlook"
ReplyTo -> Responder a: ej: jade_tyler@clubdelphi.com
Subject -> Asunto del correo
ToAddress -> Lista de direcciones destinatarios
ToBlindCarbonCopy y ToCarbonCopy -> Copias
bueno anteriormente te expliqué las propiedades, una vez especificadas debes conectar el "componente" con el servidor, para eso puedes usar:

Código Delphi [-]
NMSMTP1.Connect;

una vez conectado, para enviar el mensaje especificado en las propiedades:

Código Delphi [-]
NMSMTP1.NMSMTP1.SendMail;

Sería bueno que estudiaras las funcionalidades/utilización de los eventos de dicho componente.

Espero haberte ayudado.
Saludos, aeff!

aeff 22-11-2009 07:16:26

si deseas recibir correos, pues dale un vistazo al componente "TNMPOP3" de la misma paleta.

saludos! aeff!

roman 22-11-2009 18:13:19

Cita:

Empezado por JADE_TYLER (Mensaje 347118)
que mande correo electronico a una direccion de outlook

¿Qué entiendes por una dirección de Outlook? Outlook no es un servidor de correo.

// Saludos

JADE_TYLER 22-11-2009 20:44:52

Ahora que me haces esa pregunta, veo mejor el panorama sobre lo que quiero hacer me estaba imaginando que Outlook era los mismo que por ponerlo de ejemplo hotmail y corrigeme si es necesario lo que ahora entiendo es que solo es una aplicacion para administrar correo electronico.

El trabajo que tengo encomendado es hacer que con codigo delphi se mande un mail por ejemplo a xxxxxx@imss.gob.mx y en la institucion manejan su correo con Outlook.

Gracias por leerme.

radenf 22-11-2009 23:54:34

Estimado JADE_TYLER :

No sé si es lo que andas buscando pero a lo mejor te puede servir.
Debes colocar en tu Form un Edit para ingresar la dirección de correo y en el evento OnClick o OnDBlClick añades el siguiente código:

Código Delphi [-]
ShellExecute(GetDesktopWindow(), nil,
pChar('mailto:' + TLabel(Sender).Caption+'?subject=Tu Mensaje'), nil, nil, SW_SHOWNORMAL);

Salu2

JADE_TYLER 23-11-2009 01:24:29

Hola gracias por tu atencion

Ya tengo el proyecto con la información que me diste pero al compilarlo me aparece lo siguiente

[Fatal Error] Could not create output file 'C:\Program Files\Borland\Delphi6\Projects\Project2.exe'

asi quedo el código:

procedure TForm1.tbEnviarClick(Sender: TObject);
begin
smtp.Host:= 'smtp.live.com';
smtp.UserID:= 'paty_mnmr';

smtp.PostMessage.Attachments.Add('Adjunto := C:\Users\Paty_Tyler\Documents\Clave.txt');
smtp.PostMessage.Body.Add('Mensaje enviado exitosamente');
smtp.PostMessage.Date:= '11/22/09';
smtp.PostMessage.FromAddress:= 'paty_mnmr@hotmail.com';
smtp.PostMessage.FromName:= 'Paty';
smtp.PostMessage.ReplyTo:= 'paty_mnmr@hotmail.com';
smtp.PostMessage.Subject:= 'Hi';
smtp.PostMessage.ToAddress.Add('de_marian_@hotmail.com');

smtp.Connect;
smtp.SendMail;

end;

Que será? o falta algo en la sección de Uses?

GRACIAS

JADE_TYLER 23-11-2009 01:56:39

Hola de nuevo.

De antemano gracias por la atención.

Intente mandar el mail tambien con el siguiente codigo:

procedure TEnviarCorreo.TbEnviarClick(Sender: TObject);
var
Host, ElQueManda, ElQueRecibe, Asunto: string;
begin
host:= 'smtp.live.com';

smtp.Host:= host;
smtp.Port:= 587;

ElQueManda:= 'paty@hotmail.com';
ElQueRecibe:= 'pat@live.com.mx';
Asunto:= 'Hola';

idMensaje.From.Address:= ElQueManda;
idMensaje.ReceiptRecipient.Address:= ElQueRecibe;

idMensaje.Subject:= Asunto;
idMensaje.Body:= TmCuerpo.Lines;

smtp.Connect;
smtp.Send(idMensaje);

end;

procedure TEnviarCorreo.SMTPConnected(Sender: TObject);
begin
if smtp.Connected = true then
showmessage('Conexión exitosa');

end;

end.


Y si me conecta con el host de hotmail utilizando el componente TidSMTP de Indy Clients, pero me aparece el siguente error y marca en el codigo esta parte "smtp.Send(idMensaje);"

"raised exception class EIdProtocolReplyError with message '530 5.7.0 Must issue a STARTTLS command first'."

Como resolver esto?

roman 25-11-2009 18:30:10

1 Archivos Adjunto(s)
Hola,

Para enviar correos con Indy, usando Hotmail, es necesario usar el protocolo SSL. Con Indy 10 puedes hacerlo pero necesitas además unas bibliotecas (open source) que descargas de aquí.

Te adjunto en ejemplo que hice hace un tiempo pero que se perdió junto con los últimos seis meses del Club :(.

El ejemplo incluye ya las bibliotecas SSL y el ejecutable, sólo para la versión 7, si tienes otra versión, sólo tienes que recompilar desde las fuentes.

A mi me ha funcionado, pero algunas personas han comentado que les falla. Es cuestión de que le eches un ojo.

// Saludos

JADE_TYLER 02-12-2009 01:42:13

Hola Roman, muchas gracias por tu ayuda
Sobre los datos adjuntos del proyecto para enviar correo electronico
se descarga y solo hay un archivo extraño no veo nada del proyecto
Delphi, si lo puedes cargar de nuevo lo agradecere infinitamente.

Hasta pronto.

ingel 23-02-2010 13:28:57

pregunta ...
 
Hola Roman .. disculpa la molestia .. quisiera saber si podria hacer esto mismo que indicas , pero con Delphi 5 .. y en tal caso .. que necesitaria ?
Necesitaria mandar un email desde una cuenta de hotmail a una de yahoo...
o desde yahoo a la misma de yahoo ..lo que quiero es que el sistema cuando
de una excepcion me envie un correo a mi cuenta de yahoo ...
(NO dispongo de un servidor de emails..y ademas necesito generalizarlo )
Sds ..Gracias
PD. no se si es correcto que pregunte esto en el post , pero como es esto mismo lo que necesito ... Disculpas si no...

roman 23-02-2010 15:28:34

No tengo Delphi 5 a la mano pero los componentes Indy sirven también para esa versión; sólo tienes que instalar los paquetes que correspondan.

// Saludos


La franja horaria es GMT +2. Ahora son las 10:46:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi