Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Componente para enviar EMail

Hola compañeros


He leido varios hilos respecto al envio de correos, en los cuales se comparte distinto código para realizarlo, pero parece que ninguno funciona al 100% me refiero a que unos funcionan con unos servidores de correos y otros no (por ejemplo con hotmail, yahoo o gmail o por que requieren encriptación), yo sé muy poco del tema y al parecer también hay problema segun el servidor de correo que se usa, intenté usar las Indy 10 pero por ningun lado encontré como adjuntar un archivo (ni en la página de Indy o sus demos) el código que hay en todos lados es para Indy 9 y la sintaxis para adjuntar archivos es diferente.


Alguien ha usado algun componente ya sea gratuito o de paga que funcione en cualquier caso (hotmail, yahoo, terra, gmail, etc) o cuales son los requisitos mínimos para realizar esto (por ejemplo contar con un servidor de correo), alguno de ustedes actualmente tiene implementado esto??

Intenté usar el smtprelayserver (ya que uso Delphi 7) pero el demo que tiene nunca me funciono, al parecer hay que poner un DNS (aunque la documentacion indica que no es necesario generalmente) leí en este foro como obtener el DNS pero tampoco funciono ademas que nunca encontré donde adquirir el componente (parece que está descontinuado).

Buscando en la web he encontrado algunos componentes:

SendMail de appControls (ultima actualización en 2007)
Email engine for Delphi de Marshall software (no indica versiones de Delphi compatibles)
TEmailServer de CitiSoft

Alguien los utiliza? que tal les ha funcionado?


Saludos
Roger
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #2  
Antiguo 24-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que estás confundido.
¿Buscas un cliente o un servidor de correo?
Todos los clientes son válidos, el que funcione (o no funcione) con hotmail, gmail, etc. no es por el componente, sino por los parámetros que hay que darle.
Por supuesto que puedes usar indy, synapse, etc.
Al igual que puedes enviar mediante mapi, pop3, etc.
Cada uno trabaja de una forma, sólo es cuestión, como dije antes, de darle los parámetros oportunos.
Céntrate en uno que te guste más y documéntate con ese, no quieras abarcar todos en cuanto encuentres un problema, mejor solucionar ese problema/duda que empezar de cero con otros componentes.
Responder Con Cita
  #3  
Antiguo 24-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola Casimiro


Lo unico que requiero es enviar correos, tengo un programa de facturación instalado con varios clientes y lo que quieren es que al terminar la factura esta se envie automaticamente a sus clientes, como decía en mi mensaje anterior he leído varias soluciones propuestas, por ejemplo MAPI que si no entendí mal es una API que llama al cliente de correos instalado en la PC para que haga el envio (si estoy mal corregirme) el problema es que no todos los usuarios del sistema tienen instalado uno, mi idea es ver si alguien ha utilizado algun código o componente que le funcione para enviar correos a cualquier dirección y en cualquier PC (he leído que en algunos casos el código propuesto funciona en un PC y en otros hay que modificar el código para que funcione).


Espero exista algo que funcione de ese modo para no hacer ajustes en el programa o en el equipo de cada usuario.


Saludos
Roger
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #4  
Antiguo 24-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por cancun Ver Mensaje
Espero exista algo que funcione de ese modo para no hacer ajustes en el programa o en el equipo de cada usuario.
A ver, esto que pides es prácticamente imposible. Piensa que tu plicación estría funcionando como un cliente de correo, así como, por ejemplo, el Thunderbird o el Outlook. Cualquier cliente de correo necesariamente debes especificarle los parámetros adecuados según el servidor de correo que tenga el usuario. Si a esos clientes de correo les tienes que indicar tales parámetros, ¿por qué esperas que a tu aplicación no?

// Saludos
Responder Con Cita
  #5  
Antiguo 24-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola



Creo que no me ha dado a entender, no me refería a no configurar nada, es obvio que por lo menos tengo que indicar la cuenta de correo que envia, tengo entendido que para enviar los correos es necesario configurar los valores para el servidor de correo que se usa, por ejemplo vamos a suponer que el usuario tiene una cuenta en el servidor de correos de la empresa (facturacion.empresa.com) lleva unos parametros o (facturacionempresa@hotmail.com) supongo lleva unos valores diferentes, pero la idea es que el codigo o componente funcione con ambos sin que haya que modificarlo solo configurarlo, de hecho tengo entendido que algunos componentes funcionan sin usar un servidor de correo (tal vez estoy mal o entendí mal) creo que envian el correo directamente al servidor de la cuenta destino o algo así.


Bueno si alguien me puede comentar que componente usa para enviar correo y que tal funciona (si le ha dado problema en algunos casos y si lo pudo arreglar) eso es lo que quisiera saber, gracias

Saludos desde el caribe
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #6  
Antiguo 24-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues sí, entiendo. Pero justamente, clientes como Thunderbird te permiten configurar servidores con SSL/TLS o STARTTLS que son los que usan, por ejemplo, gmail y hotmail respectivamente. Y es cuando, usando Indy, debes agegar los componentes adecuados.

Posiblemente puedas lograr algo más general si incluyes los componentes regulares de Indy junto con los de SSL y hacer las asignaciones pertinentes según lo que escoja el usuario.

// Saludos
Responder Con Cita
  #7  
Antiguo 25-08-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Creo que lo más facil es que todos los clientes utilicen el mismo servidor de correo.
Al cliente se le explica que la aplicación lleva implícita la configuración de un servidor de correo determinado. Hoy no hay problema para abrir cuentas de correo.
Saludos.
Responder Con Cita
  #8  
Antiguo 27-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Tal vez eso ayude, pero preguntaba quien había utilizado código o algun componente para enviar correos y le haya funcionado bien, pero creo que mejor empezaré a experimentar con lo que encuentre, muchas gracias a todos los que respondieron.
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #9  
Antiguo 27-08-2012
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
He utilizado Delphi7, Indy9 y Yahoo y me funciona bien.
Saludos.
Responder Con Cita
  #10  
Antiguo 28-08-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Yo tengo algo funcionando que hace exactamente eso, utiliza Indy y hasta ahorita nunca ha dado problemas salvo con hotmail y cosas raras, pero mi cliente tiene su correo con su propio y no le ha dado lata.

Asi lo hago:
Código Delphi [-]
Procedure EnviarCFD(aEmail:string;aNo_talon:Integer; aSucursal:string;  asilent:boolean = false);overload;
// Componente de envio de correo
 var
   Correo    : TMailer;
   TextoMess : TStringList;
   Adjuntos  : TStringList;
   sFile     : string;

Begin
  Correo    := TMailer.Create;
  TextoMess := TStringList.Create;
  Adjuntos  := TStringList.Create;
  Screen.Cursor := crHourGlass;
  try
    Correo.CargaConfigSistemaDB; //Preparamos para enviar desde el correo del sistema
    sFile := uCFDTools.ExtractXMLFile(aNo_talon, aSucursal);
    Adjuntos.Add(sFile);
    ufqrTalonCFD.GeneraPDFTalonCFD(aNo_talon, aSucursal);
    sFile := uCFDTools.GetFullPDFFileName(aNo_talon, aSucursal);
    Adjuntos.Add(sFile);
    With TextoMess do
    begin
      Add('Estimado XXXXX:');
      Add('');
      Add('Anexo encontrará su comprobante Fiscal Digital');
      Add('');
      Add('Este es un correo generado de forma automática, por favor no lo responda');
      Add('Estamos a sus órdenes en el correo blalalala@aaa.com')
    end;
    Correo.FormatHMTLMessage(TextoMess);
    Correo.ConectaMail;
    Correo.EnviaEmailHTML(CFDMAIL_NOMBRECORREO,Correo.cuenta_origen,aEmail,CFDMAIL_ASUNTOCORREO,TextoMes  s,Adjuntos);
    Correo.DesconectaMail;
    If not asilent Then MessInfo('E-Mail enviado con éxito');
  finally
    Correo.Free;
    Adjuntos.Free;
    TExtoMess.Free;
    Screen.Cursor := crDefault;
   
  end;

end;

Obviamente tiene varias funciones propias, pero la que hace todo es esta:
Código Delphi [-]

Procedure TMailer.EnviaEmailHTML(nombre, desde, hasta, pasunto:String; ahtml,aTXT:TStringList;  adjunto: string);
var
  // Componente de envio de correo
   Mensaje : TIdMessage;
   txtPart : TIdText;
   htmPart : TIdtext;
   bmpPart : TIdAttachment;


Begin
  Mensaje:=TIDMessage.CREATE(nil);


Try
  with Mensaje do
  begin
    From.Address := desde;
    From.Name    := nombre;
    Recipients.EMailAddresses := hasta; //formamails.Emails.;}
    Subject                   := pasunto;
  //  Priority                  := TIdMessagePriority(mpHighest);//prioridad del mensaje
    CCList.EMailAddresses     := '';
    BccList.EMailAddresses    := '';


    ContentType := 'multipart/mixed';   //multipart/alternative
    //Creamos las 2 partes del e-mail, una en texto plano y la otra en html para

    {txtpart             := TIdText.Create( MessageParts,aTXT );
    txtpart.ContentType := 'text/plain';}
    htmpart             := TIdText.Create( MessageParts,ahtml );
    htmpart.ContentType := 'text/html';

    if Adjunto<>'' then
    Begin
        With TIdAttachmentFile.Create(Mensaje.MessageParts,adjunto) do

          //Utilizamos entonces la funcion Extract
          ContentType := GetMIMEType(adjunto);

    End;
  end; //configuracion server smtp

     MailHost.Send(Mensaje);

   finally
      Mensaje.free;
  end;


end;

{Esta función analiza la extensión del archivo pasado como parámetro y nos
devuelte un MIMETYpe adecuado para enviar por mail como adjunto si la extension
no es reconocida se manda como genérico.
}
function TMailer.GetMIMEType(afilename: string): String;
var Ext: string;
begin
  Ext := UpperCase(ExtractFileExt(afilename));

  if Ext='.PDF' then
   Result := 'application/pdf'
   else
     if Ext='.ZIP' then
       Result := 'application/zip'
     else
        if Ext='.MP3' then
         Result := 'audio/mpeg'
       else
       if (Ext='.JPG') OR (Ext='.JPEG') then
         Result := 'image/jpeg'
       else
         if (Ext='.XLS')  then
           Result := 'application/vnd.ms-excel'
         else
          if (Ext='.XLSX') then
            Result := 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
         else
           if (Ext='.DOC')  then
            Result := 'application/msword'
           else
           if (Ext='.DOCX')  then
            Result := 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
           else
            Result := 'application/octet-stream';


end;

Un poco chapucero el código pero funciona sin problemas, por eso ya no se le ha movido nada bajo la premisa de "si funciona no le muevas"...jejeje
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #11  
Antiguo 28-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola


El código que usas es similar al que intenté usar con Indy 10 pero no me funciona, intenté usando una cuenta con prodigy pero siempre me da error al enviar, incluso lo intenté con un programa demo del componente SendMail de AppControls y nada, seguiré intentando.


Saludos
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #12  
Antiguo 31-08-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola foristas


Por si le sirve a alguien les diré que terminé usando una dll de MarshallSoft que hasta ahora funciona perfectamente, he enviado correos Hotmail, GMail y Yahoo sin ningun problema y enviando archivos adjuntos, utilice Delphi 7.



Saludos
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #13  
Antiguo 31-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y qué versión has comprado?
Imágenes Adjuntas
Tipo de Archivo: jpg Sinnombre.jpg (18,7 KB, 64 visitas)
Responder Con Cita
  #14  
Antiguo 03-09-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Pues no menciona versión exactamente pero por el nombre parece que es la versión 4 (SEE4D) que incluye soporte hasta para Delphi XE2 de 64 bit y hasta ahora me funcionado bien con servidores con y sin autentificación.
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #15  
Antiguo 03-09-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
No me fijé antes en la imagen de tu mensaje, el software al que me refiero es este: SMTP/POP3/IMAP Email Engine y solo manejan un tipo de licencia al parecer.
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #16  
Antiguo 03-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿No sabes lo que has comprado ni la licencia que tiene ni versión?
Responder Con Cita
  #17  
Antiguo 03-09-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Pues parece que no la compró, más bien la consiguió de algún modo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #18  
Antiguo 04-09-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola Casimiro, pues como comentaba antes, en ningun lado menciona la versión, en lo unico que me fijé es que hiciera lo que necesito y que funcione para Delphi 7.

Hola AzidRain, no entiendo el porque de tu comentario, pero te comento que si adquirí la licencia de uso en la página de MarshallSoft, primero baje la versión demo y después de comprobar que funciona perfectamente hice la compra (el demo tiene un nag screen).


Saludos
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #19  
Antiguo 04-09-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Por eso puse "parece" porque no habias comentado nada. Ahora si ya queda muy claro. Disculpame si te sientes incómodo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #20  
Antiguo 04-09-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
No te preocupes, "conseguir" el software es costumbre de algunos y eso lleva al cierre de muchos fabricantes de buen software, en mi caso procuro evaluar primero que tal funciona para no "tirar" el dinero en software que no cumple lo que requiero, por eso preguntaba al principio por si alguien ya había usado librerias o código que le funcione bien, gracias a todos los compañeros por sus respuestas.


Saludos
__________________
Cancun, Q.Roo, México
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
Sobre error para enviar email por gmail lduron Varios 8 23-11-2011 00:19:31
Problema para enviar email con indy delphi7 cmena Internet 2 13-10-2005 21:58:55
Problema al enviar Email con adjuntos usando el componente Idsmtp de las indy Nbull Internet 2 22-11-2004 09:23:38
como puedo hacer para enviar un quick report por email?? merlin Internet 1 14-12-2003 20:24:17
como puedo hacer para enviar un quick report por email?? merlin Impresión 4 05-12-2003 18:06:58


La franja horaria es GMT +2. Ahora son las 04:31:07.


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