
Como mandar un correo con Delphi 2010
#1
Escrito 09 febrero 2011 - 01:58
#2
Escrito 09 febrero 2011 - 02:04
Y porque no utilizas los Indy ?
Salud OS
#3
Escrito 09 febrero 2011 - 02:08
class function TdmCorreo.correo(chostcorreo, cusername, cPassword, cDestinatario, cAsunto, cArchivo: String; cportcorreo: Integer; lsCuerpo: TStringList): Boolean; begin with TdmCorreo.Create(Application) do begin idMessage1.Clear; idMessage1.ContentType := 'text/html'; idMessage1.FromList.EMailAddresses := cUserName; idMessage1.Recipients.EMailAddresses := cDestinatario; idMessage1.Subject := cAsunto; idMessage1.Body.AddStrings(lsCuerpo); if FileExists(cArchivo) then TIdAttachmentFile.Create( idMessage1.MessageParts, cArchivo ); idSMTP1.Username := cUserName; idSMTP1.Password := cPassword; idSMTP1.Host := cHostCorreo; idSmtp1.Port := cPortCorreo; if not idSMTP1.Connected then idSMTP1.Connect; idSMTP1.Send(IdMessage1); Result := True; end; end;
#4
Escrito 09 febrero 2011 - 02:53
Eduarcol, mañana por la tarde lo probare.
#5
Escrito 09 febrero 2011 - 04:49
De aquí, descarga el ejemplo de nombre IdPOP3 / IdSMTP / IdMessage, es una aplicación para manejar completamente una cuenta de correo usando POP y SMTP, permite adjuntar archivos y muchas otras cosas.
Saludos
#6
Escrito 09 febrero 2011 - 04:55
Me uno a las voces de Egostar y Eduarcol, con Indy es la movida.
De aquí, descarga el ejemplo de nombre IdPOP3 / IdSMTP / IdMessage, es una aplicación para manejar completamente una cuenta de correo usando POP y SMTP, permite adjuntar archivos y muchas otras cosas.
Saludos
Me olvidaba, si usas Delphi 2010, te va a dar un pequeño error (que debe ser de versiones) que se soluciona cambiando:
case SmtpAuthType of 0: SMTP.AuthType := atNone; 1: SMTP.AuthType := atDefault; {Simple Login} end;
por:
case SmtpAuthType of 0: SMTP.AuthType := satNone; 1: SMTP.AuthType := satDefault; {Simple Login} end;
Saludos.
#7
Escrito 09 febrero 2011 - 09:51

También subo la función que uso para enviar los correos, que prácticamente es lo mismo que Eduardo ha publicado.
Salud OS
PD, Por cierto, esto lo hice con Turbo Delphi y la migración fué transparente.

#9
Escrito 10 febrero 2011 - 01:27
#10
Escrito 10 febrero 2011 - 01:36
debo de estar muy torpe, porque o me faltan datos o algo estoy haciendo mal, no lo he logrado con ninguno, podéis montarme una demo simple por favor.
Hola Desart
Te marca algún error, no se conecta al servidor de correo, se conecta pero no envia el correo, No envia los adjuntos, ya hiciste un trace de la aplicación para ver donde se atora ???
Si no te urge, en la noche (GMT-6) te mando un ejecutable donde solo coloques los datos para el SMTP.
Salud OS
#11
Escrito 10 febrero 2011 - 03:08
Los parámetros que le pongo por lo que entiendo son correo desde lo mando, uno antiguo que no uso, pero funciona
Desart@eresmas.com, smtp.eresmas.com, Usuario y clave, a destino sería desart@misabueso.com cabecera, mensaje.
#12
Escrito 10 febrero 2011 - 04:29
#13
Escrito 10 febrero 2011 - 10:45
Lo prometido es deuda, hice una pequeña aplicación para enviar correo colocando todos los datos que se necesitan, espero que te sirva como referencia.
Salud OS
Archivos adjuntos
#14
Escrito 11 febrero 2011 - 02:03
Socket Error #10022 Invalid argument.
#15
Escrito 11 febrero 2011 - 08:19
Hola Egostar, en primer lugar Gracias, me gustaria si puedes mandes los fuentes, en segundo lugar me da el error
Socket Error #10022 Invalid argument.
Hola Desart
Los fuentes los publico hoy por la noche, ya sabes GMT-6

Acerca del error, me parece que tu firewall está bloqueando la conexión con el servidor de correo, agrega la aplicación al firewall e intenta de nuevo.
Salud OS
#16
Escrito 11 febrero 2011 - 10:58
Espero que puedas abrir y compilar los fuentes, yo los he podido abrir y compilar hasta con Turbo Delphi (BDS 2006).
Salud OS
Archivos adjuntos
#17
Escrito 13 febrero 2011 - 02:34
Projectxxx raised exeption class EidSocketError with message 'Socket Error # 10060 Connection timed out.'.
#18
Escrito 13 febrero 2011 - 11:02
Hola Egostar, probé tu código, le di acceso a mi firewall y aun así me sale el siguiente error
Projectxxx raised exeption class EidSocketError with message 'Socket Error # 10060 Connection timed out.'.
Vaya, pues si que es raro, a mi me funciona perfectamente, el problema es que no te puedes conectar al sevidor, ¿ están bien los datos que usas para conectarte ? no veo otra causa, a menos claro que sea como en México, que mi proveedor de internet bloqueo el puerto 25 para el envio de correos con otros proveedores de correo.
Salud OS
#19
Escrito 13 febrero 2011 - 06:19
He probado el programa y funciona perfectamente (el exe).
He tratado de ver el codigo y a la hora de ejecutarlo me muestra errores de que faltan dcu aqui:
[Fatal Error] Unit1.pas(7): File not found: 'IdAttachmentFile.dcu'uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdMessage, IdSMTP, IdAttachmentFile, IdMessageParts,
IdText ;
Me deben faltar estas dcu en delphi 6, no se.
Saludos
PD: Parece que estos son componentes INDY version 10 y no tengo ninguna version.

#20
Escrito 13 febrero 2011 - 08:50

Salud OS