FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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; Salu2 |
#2
|
|||
|
|||
el codigo del mail lo entiendo
pero ¿que es comobj? ¿y como es el codigo de comobj? |
#3
|
|||
|
|||
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; |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
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. Si quereis enviar un archivo adjunto, tendreis ke añadir el metodo Código:
Mail.AddAttachment('Direccion del archivo'); Salu2 |
#6
|
|||
|
|||
Ya probe lo ke deciais fui a un ciber y lo probe y me dio ese error. Pero quitais
Código:
Mail:= Unassigned; Salu2 |
#7
|
|||
|
|||
A mi me dice que se requiere autentificacion al enviar el mensaje
|
#8
|
|||
|
|||
Lo Escribi como aparece en el ejemplo e igual aparece el error:
'No es valido el valor de configuracion "SendUsing"'. |
#9
|
|||
|
|||
Me sigue dando el error de SendUsing quitando la linea
Mail:= Unassigned; |
#10
|
|||
|
|||
Joder, pues no se ke puede ser. A lo mejor es por la configuracion de internet. Lo investigo y os respondo.
Salu2 |
#11
|
|||
|
|||
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; |
#12
|
|||
|
|||
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; |
#13
|
|||
|
|||
Como seria el codigo para una direccion de hotmail,
me da error 530 requerida autenticacion |
#14
|
|||
|
|||
Aunque no os lo creais me sigue dando el mismo error. No es valido el valor d configuracion del SendUsing.
|
#15
|
||||
|
||||
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?
|
#16
|
|||
|
|||
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 |
#17
|
||||
|
||||
Lo probe, andar anda, pero no adjunta ninguno de los tipos de archivo que probe, ni txt ni jpg.
Saludos |
#18
|
|||
|
|||
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 |
#19
|
|||
|
|||
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; 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>'); |
#20
|
|||
|
|||
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. |
|
|
|