In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Clase tCDO para envío de emails

Foro público de Xailer en español
Responder
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Clase tCDO para envío de emails

Mensaje por Bingen Ugaldebere »

/*
Interface para CDO Mail
http://msdn.microsoft.com/en-us/library ... 8v=exchg.6 5%29.aspx
(C) 2011, José Lalín
Modificado por Bingen 2011
*/
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS TCDOMail FROM TComponent
PUBLISHED:
PROPERTY cServer INIT ""
PROPERTY nPort INIT 0
PROPERTY lAuthenticate INIT .F.
PROPERTY lSSL INIT .F.
PROPERTY cUser INIT ""
PROPERTY cPassword INIT ""
PROPERTY aAttach INIT {}
PROPERTY cFrom INIT ""
PROPERTY cTO INIT ""
PROPERTY cCC INIT ""
PROPERTY cBCC INIT ""
PROPERTY cSubject INIT ""
PROPERTY cMessage INIT ""
PROPERTY lHTML INIT .F.
PUBLIC:
DATA lInstalled INIT .F. READONLY
METHOD Create( oParent ) CONSTRUCTOR // --> Self
METHOD Free() // --> Nil
METHOD Send() // --> lSuccess
//PROTECTED:
DATA oObj
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD Create( oParent ) CLASS TCDOMail
LOCAL oError
Super:Create( oParent )
TRY
::oObj := CreateObject( "CDO.Message" )
IF ValType( ::oObj ) == "O"
::lInstalled := .T.
ENDIF
CATCH
::lInstalled := .F.
END
RETURN Self
//---------------------------------------------------------- --------------------
METHOD Free() CLASS TCDOMail
Super:Free()
::oObj := Nil
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD Send() CLASS TCDOMail
LOCAL oCfg := CreateObject( "CDO.Configuration" )
LOCAL lSuccess := .F., nAttach:=1
WITH OBJECT oCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/config ... smtpserver" ):Value := ::cServer
:Item( " http://schemas.microsoft.com/cdo/config ... pserverpor t" ):Value := ::nPort
:Item( " http://schemas.microsoft.com/cdo/config ... pauthentic ate" ):Value := IIF( ::lAuthenticate, 1, 0 )
:Item( "http://schemas.microsoft.com/cdo/config ... smtpusessl" ):Value := IIF( ::lSSL, 1, 0 )
:Item( "http://schemas.microsoft.com/cdo/config ... ndusername" ):Value := ::cUser
:Item( "http://schemas.microsoft.com/cdo/config ... ndpassword" ):Value := ::cPassword
:Item( "http://schemas.microsoft.com/cdo/config ... /sendusing" ):Value := 2
:Update()
END
WITH OBJECT ::oObj
:Configuration := oCfg
:From := ::cFrom
:To := ::cTo
:Subject := ::cSubject
:Cc := ::cCC
:Bcc := ::cBCC
IF ::lHTML
:HTMLBody := ::cMessage
ELSE
:TextBody := ::cMessage
ENDIF
For nAttach:=1 to Len(::aAttach)
:Addattachment := ::aAttach[nAttach]
Next
Try
lSuccess := ( :Send() == Nil )
Catch
lSuccess := .F.
End
END
oCfg := Nil
RETURN lSuccess
//---------------------------------------------------------- --------------------
CLASS TCDOGMail FROM TCDOMail
PUBLISHED:
PROPERTY cServer INIT "smtp.gmail.com"
PROPERTY nPort INIT 465
PROPERTY lAuthenticate INIT .T.
PROPERTY lSSL INIT .T.
ENDCLASS
//---------------------------------------------------------- --------------------
//Ejemplo de uso
/*
WITH OBJECT TCDOMail():New(self)
:cServer := "smtp.test.com"
:cUser := "myself@test.com"
:nPort := 465
:lAuthenticate := .T.
:lSSL := .T.
:cPassword := "MyPassword"
:cTO := "destinatary@google.com"
:aAttach := {"c:ads_err.adi","c:ads_err.dbf"}
:cSubject := "This is the subject."
:cMessage := "The text of the message ........................."
:Create()
IF :lInstalled
If !:Send()
MsgInfo('Error al envia Correo, revise los datos de la configuración de envio.')
Else
Msginfo("Correo enviado con éxito")
Endif
else
MsgInfo('Servidor de Correo no Instalado imposible enviar email desde el programa.')
endif
:End()
END WITH
*/
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Clase tCDO para envío de emails

Mensaje por jlalin »

Bingen,
> La clase es sencillamente sorprendente, pero le faltaba una cosa adjuntar
> archivos al enví­o.
Esta clase fue escrita en un rato para alguien que la pidió en el foro y
luego no se terminó porque habí­a un error que yo no conseguí­a reproducir y
no supe nada más.
Saludos,
José Lalí­n
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Clase tCDO para envío de emails

Mensaje por Martin Del Angel »

On 3/17/2011 4:25 PM, José Lalí­n wrote:
> Bingen,
>
>> La clase es sencillamente sorprendente, pero le faltaba una cosa adjuntar
>> archivos al enví­o.
>
> Esta clase fue escrita en un rato para alguien que la pidió en el foro y
> luego no se terminó porque habí­a un error que yo no conseguí­a reproducir
> y no supe nada más.
>
> Saludos,
> José Lalí­n
>
Hola Bingen:
Si efectivamente como dice José, estuvimos haciendo pruebas , pero nos
salia un error , que no supimos resolver , y como lo implemente con el
compomente de paga de chilikat (por cierto muy bueno) se quedo solo en
eso , en pruebas.
Saludos...
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Clase tCDO para envío de emails

Mensaje por Bingen Ugaldebere »

El error por lo que leí­ era debido a que el cFrom es obligatorio, las
pruebas que he estado haciendo me han ido muy bien y aunque chilikat
tiene muy buena pinta, esto también parece válido.
Salu2.
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Clase tCDO para envío de emails

Mensaje por Bingen Ugaldebere »

Con tu permiso Ose la subo al Download, aunque deberí­as de ponerla tu ya
que debe de figurar como tuya.
Salu2.
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Clase tCDO para envío de emails

Mensaje por Martin Del Angel »

On 3/18/2011 2:17 AM, Bingen Ugaldebere wrote:
> Con tu permiso Ose la subo al Download, aunque deberí­as de ponerla tu ya
> que debe de figurar como tuya.
>
> Salu2.
Hola Bingen:
Gracias , por encontrar la solución.
El mérito son de uds. José Lalin y tuyo. yo solo hice pruebas de lo que
José habia implementado.
y al subuirla al area de Descargas , todos somos beneficiados con tu aporte.
muchas gracias nuevamente.
Saludos...
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Clase tCDO para envío de emails

Mensaje por Martin Del Angel »

On 3/18/2011 2:17 AM, Bingen Ugaldebere wrote:
> Con tu permiso Ose la subo al Download, aunque deberí­as de ponerla tu ya
> que debe de figurar como tuya.
>
> Salu2.
Animate a venir a México (Cancún) al seminario de Xailer del 4 al 6 de
Abril.
Saludos...
ssi-estono-
Mensajes: 239
Registrado: Sab Ene 24, 2009 8:23 pm

Clase tCDO para envío de emails

Mensaje por ssi-estono- »

Martin, podeis apuntaros al de aquí.
La semana que viene nos va a dar Bingen un seminarion en Miranda de Ebro.
Estais invitados.
Paco V
"Martin Del Angel" <mdangel@dymsasistemas.com> escribió en el mensaje
news:[email=4d837caa@svctag-j7w3v3j....]4d837caa@svctag-j7w3v3j....[/email]
> On 3/18/2011 2:17 AM, Bingen Ugaldebere wrote:
>> Con tu permiso Ose la subo al Download, aunque deberías de ponerla tu ya
>> que debe de figurar como tuya.
>>
>> Salu2.
>
> Animate a venir a México (Cancún) al seminario de Xailer del 4 al 6 de
> Abril.
>
>
> Saludos...
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Clase tCDO para envío de emails

Mensaje por Martin Del Angel »

On 3/18/2011 10:46 AM, Paco V. wrote:
> Martin, podeis apuntaros al de aquí­.
> La semana que viene nos va a dar Bingen un seminarion en Miranda de Ebro.
> Estais invitados.
>
> Paco V
>
> "Martin Del Angel"<mdangel@dymsasistemas.com> escribió en el mensaje
> news:[email=4d837caa@svctag-j7w3v3j....]4d837caa@svctag-j7w3v3j....[/email]
>> On 3/18/2011 2:17 AM, Bingen Ugaldebere wrote:
>>> Con tu permiso Ose la subo al Download, aunque deberí­as de ponerla tu ya
>>> que debe de figurar como tuya.
>>>
>>> Salu2.
>>
>> Animate a venir a México (Cancún) al seminario de Xailer del 4 al 6 de
>> Abril.
>>
>>
>> Saludos...
>
>
Gracias.
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Clase tCDO para envío de emails

Mensaje por jlalin »

Bingen,
> Con tu permiso Ose la subo al Download, aunque deberí­as de ponerla tuya
> que debe de figurar como tuya.
Y sin mi permiso también :-D Sobre la autorí­a es igual.
Saludos,
José Lalí­n
Responder