Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Enviar un mail - metodo eficaz

Con este truco puedes enviar mails de manera facil y sin problemas. Añadir ComObj a los uses.

Código:
procedure TMailer.Button5Click(Sender: TObject);
var 
Mail: Variant;
ArchivoAdjunto: boolean;
begin
 Mail:= CreateOleObject('CDO.Message');// no esta en W xp
 Mail.From:= edit1.text; //mail remitente
 Mail.Subject:= edit3.text;  //asunto
 Mail.TextBody:= memo1.Text;  //contenido del mail
 Mail.To:= edit2.text;   //mail receptor
 If ArchivoAdjunto=true then begin
 Mail.AddAttachment(edit4.text);  //añadir un archivoadjunto
 end;
 Mail.Send;  //enviar
 Mail:= Unassigned;
end;
Espero que se entienda.

Salu2
Responder Con Cita
  #2  
Antiguo 07-04-2007
mastergav mastergav is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
mastergav Va por buen camino
el codigo del mail lo entiendo
pero ¿que es comobj?
¿y como es el codigo de comobj?
Responder Con Cita
  #3  
Antiguo 08-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
ComObj lo tienes ke añadir a las librerias ke va a utilizar tu proyecto.

Código:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj;
Responder Con Cita
  #4  
Antiguo 08-04-2007
nikita nikita is offline
Registrado
 
Registrado: sep 2006
Posts: 9
Poder: 0
nikita Va por buen camino
Buenas Khronos, mira yo pongo el codigo y lo hago como tu dices, pero me da 1error del tipo: EOleException with message 'No es valido el valor de configuracion "SendUsing"'.
No soy muy experta,que tengo que hacer?? En el momento que lo ejecuto tengo internet funcionando correctamente, pero yo en mi proyecto no tengo nada configurado para internet.
Gracias
Responder Con Cita
  #5  
Antiguo 08-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Haber, os voy a poner el codigo entero porque a mi me funciona perfectamente.

Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    RichEdit1: TRichEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Mail: Variant;
begin
 Mail:= CreateOleObject('CDO.Message');
 Mail.From:= edit1.text;
 Mail.Subject:= edit2.text;
 Mail.TextBody:= richedit1.lines.text;
 Mail.To:= edit3.text;
 Mail.Send;
 Mail:= Unassigned;

end;

end.
Este es el codigo basico, para enviar un mail sin archivo adjunto.
Si quereis enviar un archivo adjunto, tendreis ke añadir el metodo

Código:
Mail.AddAttachment('Direccion del archivo');
Funciona perfectamente, no hay ningun motivo para que no funcione y no uso ningun tipo de componentes especial.

Salu2
Responder Con Cita
  #6  
Antiguo 08-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Ya probe lo ke deciais fui a un ciber y lo probe y me dio ese error. Pero quitais

Código:
Mail:= Unassigned;
y se soluciona.

Salu2
Responder Con Cita
  #7  
Antiguo 11-04-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
A mi me dice que se requiere autentificacion al enviar el mensaje
Responder Con Cita
  #8  
Antiguo 13-04-2007
RicardoNavarro RicardoNavarro is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
RicardoNavarro Va por buen camino
Lo Escribi como aparece en el ejemplo e igual aparece el error:

'No es valido el valor de configuracion "SendUsing"'.


Responder Con Cita
  #9  
Antiguo 13-04-2007
nikita nikita is offline
Registrado
 
Registrado: sep 2006
Posts: 9
Poder: 0
nikita Va por buen camino
Me sigue dando el error de SendUsing quitando la linea
Mail:= Unassigned;
Responder Con Cita
  #10  
Antiguo 13-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Joder, pues no se ke puede ser. A lo mejor es por la configuracion de internet. Lo investigo y os respondo.
Salu2
Responder Con Cita
  #11  
Antiguo 13-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Ya esta, ahora si ke funciona. Habia ke configurar el puerto.
Añadir este code antes de la funcion Mail.send

Código:
Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') := 2;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') := 'smtp.servidor.com';
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') := 25;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout') := 60;
Salu2
Responder Con Cita
  #12  
Antiguo 13-04-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Ya esta, ahora si ke funciona. Habia ke configurar el puerto.
Añadir este code antes de la funcion Mail.send

Código:
Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') := 2;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') := 'smtp.servidor.com';
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') := 25;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout') := 60;
Salu2
Responder Con Cita
  #13  
Antiguo 13-04-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
Como seria el codigo para una direccion de hotmail,
me da error 530 requerida autenticacion
Responder Con Cita
  #14  
Antiguo 14-04-2007
nikita nikita is offline
Registrado
 
Registrado: sep 2006
Posts: 9
Poder: 0
nikita Va por buen camino
Aunque no os lo creais me sigue dando el mismo error. No es valido el valor d configuracion del SendUsing.
Responder Con Cita
  #15  
Antiguo 16-04-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
Me pregunto si alguno de estos código sirve para colocar el mensaje en la bandeja de salida de la aplicación de correo predeterminada. En estos días he andado buscando un método para escribir un correo en HTML y luego con la api colocarlo en la bandeja de salida, hasta ahora solo he visto como hacerlo simples mensajes que contenga solamente texto. En una página encontré un ejemplo realizar la tarea que necesito, el problema era que solo funcionaba con Outlook y no es precisamente lo que ando buscando. ¿Alguno de ustedes me podría aydar?
Responder Con Cita
  #16  
Antiguo 20-05-2007
juliobuitrago juliobuitrago is offline
Miembro
 
Registrado: jun 2006
Posts: 37
Poder: 0
juliobuitrago Va por buen camino
Muchas veces lo simple es complejo.......que enredo.
Hay componentes especializados, aunque el SMTP es casi una "chica divertida", es mejor componentes donde configuremos todo, recueden que ahora los servers bloquean todo lo que no tenga una autenticación "casi perfecta".
Agradecemos el truco...pero parece que hay problemas....
Que hay de las Indy y otras?, Todas piden que se confure el puerto, y cuidado, depende siempre del server desde donde lo enviarás, puede que el correo "sender" necesite autenticación...y ahi se complica el truco.
Saludos
Responder Con Cita
  #17  
Antiguo 03-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Lo probe, andar anda, pero no adjunta ninguno de los tipos de archivo que probe, ni txt ni jpg.

Saludos
Responder Con Cita
  #18  
Antiguo 13-06-2007
jcarlos.matrix jcarlos.matrix is offline
Miembro
 
Registrado: may 2005
Ubicación: ensenada b.c.
Posts: 18
Poder: 0
jcarlos.matrix Va por buen camino
Efectimente he probado varios tipos de como enviar mensajes, desde outlook , comobj, indys, y efectivamente ahora todo se tiene que autentificar yo lo que uso son los indys y tengo que usar cuentas autentificadas.

estoy deacuedo con juliobuitrago
Responder Con Cita
  #19  
Antiguo 13-06-2007
Helloween Helloween is offline
Registrado
 
Registrado: jun 2007
Posts: 1
Poder: 0
Helloween Va por buen camino
Mail.Configuration.Fields.Add('http://schemas.microsoft.com/cdo/configuration/sendusername', '<nombre_de_usuario>');
Mail.Configuration.Fields.Add('http://schemas.microsoft.com/cdo/configuration/sendpassword', '<clave_de_usuario>');


Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') := 2;
Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') := 'smtp.servidor.com';


Además del código que apunta Khronos:
Código:
Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') := 2;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') := 'smtp.servidor.com';
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') := 25;
 Mail.Configuration.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout') := 60;
(donde 'smtp.servidor.com' es nuestro servidor smtp, donde tenemos una cuenta de correo activa, con usuario y contraseña)

necesitamos introducir los campos con el nombre de usuario y la contraseña de la cuenta de correo de la misma, con estas líneas:

Código:
Mail.Configuration.Fields.Add('http://schemas.microsoft.com/cdo/configuration/sendusername', '<nombre_de_usuario>');
Mail.Configuration.Fields.Add('http://schemas.microsoft.com/cdo/configuration/sendpassword', '<clave_de_usuario>');
Espero que sea de ayuda. Un saludo
Responder Con Cita
  #20  
Antiguo 29-05-2008
AntonioMM AntonioMM is offline
Miembro
 
Registrado: may 2006
Posts: 10
Poder: 0
AntonioMM Va por buen camino
Tengo la respuesta a los problemas de "SENDUSING".

Dicho parámetro solo sirve para Win 2000, ya que en
Win XP el objeto CDO, con el que se empieza el código
'no existe'.

Forma de arreglarlo, yo me he cambiado a las INDI.

Salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 13:04:50.


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