Página 1 de 1

Clase tCDO para envío de emails

Publicado: Mié Mar 16, 2011 2:18 pm
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
*/

Clase tCDO para envío de emails

Publicado: Jue Mar 17, 2011 10:25 pm
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

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 6:22 am
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...

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 8:16 am
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.

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 8:17 am
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.

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 4:29 pm
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...

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 4:39 pm
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...

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 4:46 pm
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...

Clase tCDO para envío de emails

Publicado: Vie Mar 18, 2011 5:04 pm
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...

Clase tCDO para envío de emails

Publicado: Lun Mar 21, 2011 11:04 am
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