Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Mandar un email desde delphi

Buenas, en mi aplicación necesito que cuando se pulse un botón se mande un email a una dirección de correo dada. ¿Como se haría?

Se podría mandar un adjunto sabiendo el archivo que se quiere mandar?

Muchas gracias por todo.
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD
Responder Con Cita
  #2  
Antiguo 21-10-2007
Avatar de Lonidas
Lonidas Lonidas is offline
Miembro
 
Registrado: abr 2006
Posts: 35
Poder: 0
Lonidas Va por buen camino
mira este hilo http://www.clubdelphi.com/foros/show...ighlight=email

Última edición por Lonidas fecha: 21-10-2007 a las 18:06:06.
Responder Con Cita
  #3  
Antiguo 22-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Como no puedo seguir en la otra conversación porque está cerrada continuo aqui.

Con este código y tras añadir idemessage y idsmtp tengo varios problemas:



Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host := //Aqui colocas la direccion del servidor de correo saliente;
    port := 25;
    Username := //Aqui colocas la direccion de correo desde la que enviaras el correo;
    Password := //Clave de dicha cuenta;
  end;
  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := //aqu iva la direccion de correo desde la que vas a enviar
    Recipients.EMailAddresses := //aqu iva la direccion de correo hacia la que vas a enviar
    Subject := //Asunto del correo
    body.Text  := //Texto del correo
  end;
  //aDJUNTA EL ARCHIVO
  if FileExists(//El archivo que vas a enviar) then
      TIdAttachment.create(mail.MessageParts,//Ruta del archivo que vas a enviar);
  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage('Fallo al enviar: ' + E.Message);
    end;
    ShowMessage('Mensaje enviado satisfactoriamente');
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;






port := 25;
Aquí me da el siguiente error al compilar: Imcompatible types string and procedure, untyped pointer or untyped parameter.


luego en:
Host := //Aqui colocas la direccion del servidor de correo saliente;
El servidor de correo saliente es el hotmail (lo mando desde una cuenta hotmail) pero no se que direccion poner... www.hotmail.com no creo que sea verdad? No tengo ni idea, gracias.
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD

Última edición por jorgegetafe fecha: 22-10-2007 a las 19:06:22. Razón: Porque me he equivocado
Responder Con Cita
  #4  
Antiguo 22-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Ese codigo funciona solo en servidores POP, si buscas una cuenta yo te ayudo a configurar el codigo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 22-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Cita:
Empezado por eduarcol Ver Mensaje
Ese codigo funciona solo en servidores POP, si buscas una cuenta yo te ayudo a configurar el codigo
Tengo una cuenta en gmail, creo que esa si que tiene POP gratuito no?

Si me pudieses ayudar con el código te lo agradecería enormemente.
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD
Responder Con Cita
  #6  
Antiguo 22-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
como dice GMAIL:

Cita:
Por favor, ten en cuenta que si tu cliente no admite la autenticación SMTP, no podrás enviar mensajes a través del cliente con tu dirección de Gmail.
pero podemos intentarlo, teniendo en cuenta estos parametros:

Cita:
El servidor de correo entrante (POP3) requiere SSL: pop.gmail.com
Usar SSL: Sí
Puerto: 995

El servidor de correo saliente (SMTP) requiere TLS: smtp.gmail.com Usar autenticación
Usar autenticación Sí
Usar STARTTLS: Sí (en algunos clientes se denomina SSL)
Puerto: 465 o 587

Nombre de cuenta: tu nombre de usuario de Gmail (incluido @gmail.com).
Dirección de correo electrónico: tu dirección de correo electrónico completa de Gmail (nombredeusuario@gmail.com)
Contraseña: tu contraseña de Gmail
lo que me pone a dudar es el aunto de la SSL pero ahi vamos

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host := 'smtp.gmail.com';
    port := 465;
    Username := //Aqui colocas la direccion de correo desde la que enviaras el correo;
    Password := //Clave de dicha cuenta;
  end;
  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := //aqu iva la direccion de correo desde la que vas a enviar
    Recipients.EMailAddresses := //aqu iva la direccion de correo hacia la que vas a enviar
    Subject := //Asunto del correo
    body.Text  := //Texto del correo
  end;
  //aDJUNTA EL ARCHIVO
  if FileExists(//El archivo que vas a enviar) then
      TIdAttachment.create(mail.MessageParts,//Ruta del archivo que vas a enviar);
  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage('Fallo al enviar: ' + E.Message);
    end;
    ShowMessage('Mensaje enviado satisfactoriamente');
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;
end;

lo unico que te queda es colocar la informacion que te corresponde, direcciones de correo y contraseñas
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela

Última edición por eduarcol fecha: 22-10-2007 a las 19:43:40. Razón: puerto 25 por 465
Responder Con Cita
  #7  
Antiguo 22-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Muchísimas gracias, voy a probar, luego te cuento ;-)
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD
Responder Con Cita
  #8  
Antiguo 22-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
He modificado el código tal y como me has puesto en los comentarios, me salen unos errores que ni por asomo se solucionar, te muestro la imagen que creo que asi me explico mejor:

http://img236.imageshack.us/img236/6713/dibujoan3.jpg

gracias.
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD
Responder Con Cita
  #9  
Antiguo 22-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Por pura curiosidad:

¿Estas trabajando con archivos adjuntos?

En caso de ser negativa la respuesta,

¿Quitastes la referencia a codigo adjuntos?
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 22-10-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Gracias de nuevo, ya he arreglado el fallo, no cambie una cosa que era necesario.

Ejecuto el programa y ni me muestra mensajes, ni errores ni nada, se queda trabajando y nunca acaba... :-(

Te pongo exactamente el codigo con las direcciones de correo falsas:



Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;
type
  TForm1 = class(TForm)
    Button1: TButton;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host := 'smtp.gmail.com';
    port := 465;
    Username := 'pepe@gmail.com';
    Password := 'contraseña';
  end;
  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := 'pepe@gmail.com';
    Recipients.EMailAddresses := 'pepe@gmail.com';
    Subject := 'Mensaje de prueba';
    body.Text  := 'Si estás leyendo esto es porque el mensaje ha llegado correctamente';
  end;
  //aDJUNTA EL ARCHIVO
  if FileExists('C:\Documents and Settings\Jorge\Escritorio\Mandar correo/hola.txt') then        // ruta del archivo a enviar
      TIdAttachment.create(mail.MessageParts,'C:\Documents and Settings\Jorge\Escritorio\Mandar correo/hola.txt');
  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage('Fallo al enviar: ' + E.Message);
    end;
    ShowMessage('Mensaje enviado satisfactoriamente');
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;
end;
end.




Gracias una vez más.
__________________
Explicate como si fuese tonto, soy nuevo en esto de hacer programas!!!! XD
Responder Con Cita
  #11  
Antiguo 22-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Para trabajar con Gmail es preciso utilizar el protocolo "SSL" (Secure Socket Layer), necesitas algunas librerías para esto, y además usar componentes adicionales. Echa un vistazo al hilo Utilizar Gmail con SSL donde el compañero Román adjuntó un ejemplo práctico y funcional.

Otra cosa que llama la atención en tu código es:

Código Delphi [-]
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';

Puesto que lo que haces es, sencillamente, dar un nombre al objeto que instancias antes. No asignas ningún evento... y tal vez ni haga falta en este caso.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 22-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Ese error fue mio, de copiar y pegar, quite el codigo pero no los comentarios
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #13  
Antiguo 22-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por eduarcol
Ese error fue mio, de copiar y pegar, quite el codigo pero no los comentarios
¡A la hoguera con él!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #14  
Antiguo 22-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola,



¡A la hoguera con él!
pero con el jamon para que se cocine conmigo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #15  
Antiguo 22-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Aquí aplica lo de que las penas con pan son menos penas... ¡y con jamón no te digo!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #16  
Antiguo 22-10-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
enviando correos desde delphi

Hola aqui te pongo el codigo para que le heches una ojeada

Código Delphi [-]
procedure TForm1.Button16Click(Sender: TObject);
const
  olMailItem = 0;
  olByValue = 1;
var
  OutlookApp, MailItem, MyAttachments: OLEVariant;
begin
  try
    OutlookApp := GetActiveOleObject('Outlook.Application');
  except
    OutlookApp := CreateOleObject('Outlook.Application');
  end;
  try
    MailItem := OutlookApp.CreateItem(olMailItem);
    MailItem.Recipients.Add('YourMailAddress@something.com');
    MailItem.Subject := 'Your Subject';
    MailItem.Body    := 'Your Message';
    myAttachments    := MailItem.Attachments;
    myAttachments.Add('C:\SomeFile.txt', olByValue, 1, 'Name of Attachment');
    MailItem.Send;
  finally
    myAttachments := VarNull;
    OutlookApp    := VarNull;
  end;
end;

Última edición por dec fecha: 22-10-2007 a las 22:05:18.
Responder Con Cita
  #17  
Antiguo 06-12-2007
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 18
Faust Va por buen camino
Question Perdón que reviva este hilo

Saludos camaradas:

Perdón que reviva este hilo.

Ya hace tiempo que utilizo este método para enviar correos de reportes que genero en Delphi, de esta manera el envío es automático, pues requiero que se envíen a ciertas personas cada cierto tiempo.

Mi duda es si mediante este método puedo pedir un acuse de recibo a los destinatarios, ya que me piden que los destinatarios confirmen que han recibido y leído el mensaje.

De una vez les agradezco la ayuda, mientras buscaré en google a ver que encuentro.
__________________
Herr Heins Faust
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mandar EMail con componentes Indy verm83 Internet 14 10-09-2017 15:42:34
enviar un email desde delphi avmm2004 Varios 5 26-06-2007 17:49:44
Mandar QReport por email Aprendiendo Impresión 8 18-06-2005 00:14:42
Mandar un sms desde una aplicacion en delphi Argaron Internet 0 30-07-2004 00:36:51
Mandar un correo desde delphi magm2000 Internet 5 01-10-2003 23:51:09


La franja horaria es GMT +2. Ahora son las 21:47:15.


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
Copyright 1996-2007 Club Delphi