enviar emails desde fwh
enviar emails desde fwh
Hola a todos, necesito enviar emails desde mi aplicación en fwh, hasta ahora la tenia en clipper y funcionaba bien con tsmtp, pero al pasarla a fwh, me da error al compilar el fichero winsock.c, entonces e probado otras opciones:
twmail() ----> envia los emails pero con ficheros adjuntos, al primer destinatario lo hace con basura en el fichero, por lo que es ilegible.
hb_sendmail() ----> el programa se queda colgado, justo en la clase turl, se queda bloqueado sin dar ningún tipo de error.
outlook. ole ---> envia bien el email pero siempre me aparece una ventana que dice "un programa intenta enviar un email automaticamente, pulse si para enviar", por lo que no es muy correcto.
Alguien podría darme alguna sugerencia, estoy realmente bloqueado.
Gracias.
twmail() ----> envia los emails pero con ficheros adjuntos, al primer destinatario lo hace con basura en el fichero, por lo que es ilegible.
hb_sendmail() ----> el programa se queda colgado, justo en la clase turl, se queda bloqueado sin dar ningún tipo de error.
outlook. ole ---> envia bien el email pero siempre me aparece una ventana que dice "un programa intenta enviar un email automaticamente, pulse si para enviar", por lo que no es muy correcto.
Alguien podría darme alguna sugerencia, estoy realmente bloqueado.
Gracias.
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Re: enviar emails desde fwh
Hoña Manolo
Pasame tu correo para mandarte mis escritos y consultas sobre el tema, a lo mejor te pueden ayudar.
Abandone un poco el tema pero en lo que pueda ayudar a sus ordenes...
salu2
david
Pasame tu correo para mandarte mis escritos y consultas sobre el tema, a lo mejor te pueden ayudar.
Abandone un poco el tema pero en lo que pueda ayudar a sus ordenes...
salu2
david
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: enviar emails desde fwh
Manolo,
Aqui tienes un ejemplo:
Aqui tienes un ejemplo:
Code: Select all
#include "FiveWin.ch"
#include "Mail.ch"
function Main()
local oWnd
DEFINE WINDOW oWnd
ACTIVATE WINDOW oWnd ON INIT doit()
return nil
function doit()
local oMail, aCustomer:={}
local cSubject := "Test mail"
local cMessage := "This is a test message."
AAdd( aCustomer, "alinares@fivetechsoft.com;mcanada1@telefonica.net" )
DEFINE MAIL oMail;
SUBJECT cSubject;
TEXT cMessage
oMail:aRecipients = aCustomer
ACTIVATE MAIL oMail
MsgInfo( "mail sent" )
return nil
Re: enviar emails desde fwh
Antonio,Antonio Linares wrote:Manolo,
Aqui tienes un ejemplo:Code: Select all
#include "FiveWin.ch" #include "Mail.ch" function Main() local oWnd DEFINE WINDOW oWnd ACTIVATE WINDOW oWnd ON INIT doit() return nil function doit() local oMail, aCustomer:={} local cSubject := "Test mail" local cMessage := "This is a test message." AAdd( aCustomer, "alinares@fivetechsoft.com;mcanada1@telefonica.net" ) DEFINE MAIL oMail; SUBJECT cSubject; TEXT cMessage oMail:aRecipients = aCustomer ACTIVATE MAIL oMail MsgInfo( "mail sent" ) return nil
Sería possible enviar mails a destinatarios 'CCO' con la clase tMail?
Un saludo
Carlos G.
Un Saludo
Carlos G.
FiveWin 19.06 + Harbour 3.2, BCC 7 Windows 10
Carlos G.
FiveWin 19.06 + Harbour 3.2, BCC 7 Windows 10
Re: enviar emails desde fwh
Hola antonio, con el codigo que me has dado envia emails, pero outlook muestra una pantalla de "otro programa intenta enviar un email en su nombre desea permitirlo", y también si añado la linea:
oMail:aFiles:=aFic
entonces ni envia el fichero.
gracias por tu ayuda.
oMail:aFiles:=aFic
entonces ni envia el fichero.
gracias por tu ayuda.
Re: enviar emails desde fwh
Hola Manolo y amigos:MANOLO wrote:Hola antonio, con el codigo que me has dado envia emails, pero outlook muestra una pantalla de "otro programa intenta enviar un email en su nombre desea permitirlo", y también si añado la linea:
oMail:aFiles:=aFic
entonces ni envia el fichero.
Gracias a Carlos Mora descubrí el uso de CDOSYS (Collaboration Data Objects) para el envío de correos, para mí es la mejor herramienta de las que he probado para el envío de correos desde FWH/xHarbour ya que no requiere del uso de sockets ni de aplicaciones intermedias (como Outlook)
Aquí les dejo un pequeño ejemplo funcional de dicha tecnología, que espero les sea de utilidad.
Code: Select all
#include "FiveWin.ch"
#include "TSButton.ch"
#include "CdoSys.ch"
#define WS_3DLOOK 4
#define CLR_HBROWN nRGB( 205, 192, 176 )
#define CLR_NBLUE nRGB( 142, 171, 194 )
//---------------------------------------------------------------------------------------------//
Function Main()
Local oDlg, aCtl[ 20 ], oFont
Local cMailServer := PadR( "smtp.hotmail.com", 60 ), ; // servidor de correo
cFrom := PadR( "remitente@hotmail.com", 60 ), ; // remitente
cTo := PadR( "destinatarios@hotmail.com", 180 ), ; // destinatario (uno o varios separados con comas)
cBCC := PadR( "destinatarios@hotmail.com", 180 ), ; // copias ocultas a (uno o varios separados con comas)
cAttach := PadR( "c:\fwh\bitmaps\fivewin.bmp", 180 ), ;// archivo anexo (uno o varios separados con comas)
cSubject := Space( 60 ), ; // asunto
cBody := Space( 500 ), ; // cuerpo del mensaje
nPort := 25, ; // puerto usado por el servidor de correo
cUser := Space( 60 ), ; // nombre de usuario para autenticación
cPass := Space( 30 ) // contraseña para autenticación
DEFINE FONT oFont NAME "Arial" SIZE 0, -16
DEFINE DIALOG oDlg FROM 0, 0 TO 455, 703 PIXEL ;
COLORS CLR_BLUE, CLR_HBROWN ;
TITLE "CDOSYS Collaboration Data Objects for Windows 2000" ;
STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, WS_3DLOOK )
@ 10, 5 SAY aCtl[ 1 ] PROMPT "Servidor de Correo:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 10, 80 GET aCtl[ 2 ] VAR cMailServer OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 24, 5 SAY aCtl[ 3 ] PROMPT "Remitente:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 24, 80 GET aCtl[ 4 ] VAR cFrom OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 39, 5 SAY aCtl[ 5 ] PROMPT "Destinatario:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 39, 80 GET aCtl[ 6 ] VAR cTo OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 54, 5 SAY aCtl[ 7 ] PROMPT "Copia para:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 54, 80 GET aCtl[ 8 ] VAR cBCC OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 69, 5 SAY aCtl[ 9 ] PROMPT "Adjuntar:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 69, 80 GET aCtl[ 10 ] VAR cAttach OF oDlg PICTURE "@K" ;
FONT oFont UPDATE Action fAddAttach( aCtl[ 10 ] ) ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 84, 5 SAY aCtl[ 11 ] PROMPT "Asunto:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL
@ 84, 80 GET aCtl[ 12 ] VAR cSubject OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL
@ 99, 5 SAY aCtl[ 13 ] PROMPT "Autenticación: Usuario:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 80, 11 PIXEL
@ 99, 87 GET aCtl[ 14 ] VAR cUser OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS CLR_BLUE, CLR_WHITE SIZE 118, 11 PIXEL
@ 99,213 SAY aCtl[ 15 ] PROMPT "Contraseña:" OF oDlg ;
FONT oFont UPDATE ;
COLORS CLR_BLUE, CLR_HBROWN SIZE 44, 11 PIXEL
@ 99,259 GET aCtl[ 16 ] VAR cPass OF oDlg ;
FONT oFont UPDATE PICTURE "@K";
COLORS CLR_BLUE, CLR_WHITE SIZE 85, 11 PIXEL
@118, 6 STATIC aCtl[ 17 ] BBOX OF oDlg SIZE 338, 83 PIXELS UPDATE ;
FONT oFont COLORS CLR_WHITE, CLR_NBLUE, CLR_BLUE ;
LABEL "Cuerpo del mensaje" ALIGN DT_CENTER
@126, 10 GET aCtl[ 18 ] VAR cBody OF oDlg ;
FONT oFont MULTILINE UPDATE ;
COLORS CLR_BLUE, CLR_WHITE SIZE 330, 72 PIXEL
@208,213 SBUTTON aCtl[ 19 ] PROMPT "&Enviar" OF oDlg CRYSTAL ;
FONT oFont SIZE 53, 16 PIXEL ;
COLORS CLR_BLUE, CLR_NBLUE ;
ACTION fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )
@208,292 SBUTTON aCtl[ 20 ] PROMPT "&Salir" OF oDlg CRYSTAL ;
FONT oFont SIZE 53, 16 PIXEL ;
COLORS CLR_BLUE, CLR_NBLUE
ACTIVATE DIALOG oDlg CENTERED ;
VALID ( oFont:End(), .T. )
Return Nil
//---------------------------------------------------------------------------------------------//
Function fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )
Local oCfg, oMsg, oError, ;
lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ;
nSendOpt := 2 // send using: 1 = pickup folder 2 = port 3 = remote mail server
Default nPort := 25, ;
cSubject := "", ;
cBody := ""
CursorWait()
Try
oCfg := CreateObject( "CDO.Configuration" )
With Object oCfg:Fields
:Item( cdoSMTPServer ):Value := Trim( cMailServer )
:Item( cdoSMTPServerPort ):Value := nPort
:Item( cdoSendUsing ):Value := nSendOpt
If lAuth
:Item( cdoSMTPAuthenticate ):Value := 1
:Item( cdoSendUserName ):Value := Trim( cUser )
:Item( cdoSendPassword ):Value := Trim( cPass )
:Item( cdoSMTPUseSSL ):Value := 1
EndIf
:Update()
End With
oMsg := CreateObject( "CDO.Message" )
With Object oMsg
:Configuration := oCfg
:From := Trim( cFrom )
:To := Trim( cTo )
:Subject := Trim( cSubject )
:TextBody := Trim( cBody )
If ! Empty( cAttach )
:AddAttachment := Trim( cAttach )
EndIf
If ! Empty( cBCC )
:BCC := Trim( cBCC )
EndIf
:Send()
End With
Catch oError
CursorArrow()
MsgStop( "No se pudo enviar el mensaje" + CRLF + "Error: " + cValToChar( oError:GenCode) + CRLF + ;
"SubC: " + cValToChar( oError:SubCode ) + CRLF + "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;
"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Mensaje: " + oError:Description )
oCfg := Nil
oMsg := Nil
Return Nil
End Try
oCfg := Nil
oMsg := Nil
SndPlaySound( GetWinDir() + "\media\Tada.wav", 0 )
CursorArrow()
Return Nil
//---------------------------------------------------------------------------------------------//
Static Function fAddAttach( oGet )
Local cFile, ;
cAttach := oGet:VarGet()
cFile := cGetFile( "*.*", "Selecciona el archivo" )
If ! Empty( cFile )
cAttach := Lower( PadR( AllTrim( cAttach ) + If( ! Empty( cAttach ), ",", "" ) + AllTrim( cFile ), 180 ) )
EndIf
oGet:cText( cAttach )
Return Nil
Code: Select all
#ifndef _CDOSYS_CH
#define _CDOSYS_CH
#define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver"
#define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
#define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing"
#define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory"
#define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
#define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername"
#define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword"
#define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
#endif
Manuel Mercado
PD a Carlos Mora.- Porqué no continúas con tu Blog Harbour Advisor? me pareció excelente su presentación además que tienes un magífico estilo en la redacción de tus temas. Gracias nuevamente.
manuelmercado at prodigy dot net dot mx
Re: enviar emails desde fwh
Manolo y amigos:
Parece que en el foro en Inglés hay otra alternativa.
http://forums.fivetechsupport.com/viewt ... =3&t=14678
Saludos
Parece que en el foro en Inglés hay otra alternativa.
http://forums.fivetechsupport.com/viewt ... =3&t=14678
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: enviar emails desde fwh
Gracias armando, esta alternativa ya la he probado, agrego la lib tip.lib que viene con xharbour 1.1, pero al enviar el email, el programa se queda bloqueado y no continua, no dan ningun error, simplemente se queda colgado cuando llega a la clase turl.
gracias.
gracias.
Re: enviar emails desde fwh
Hola manuel, gracias por tu aportación, lo he integrado pero no envia el email da el siguiente error:
No se pudo enviar el mensaje
Error:1001
subc: 3
oscode: 0
subsystem: CDO.message
Mensaje: DISP_E_MEMBERNOTFOUND.
Me puedes decir donde puedo encontrar informacion de ésto.
Gracias
No se pudo enviar el mensaje
Error:1001
subc: 3
oscode: 0
subsystem: CDO.message
Mensaje: DISP_E_MEMBERNOTFOUND.
Me puedes decir donde puedo encontrar informacion de ésto.
Gracias
Re: enviar emails desde fwh
Hola Manolo:MANOLO wrote:Hola manuel, gracias por tu aportación, lo he integrado pero no envia el email da el siguiente error:
No se pudo enviar el mensaje
Error:1001
subc: 3
oscode: 0
subsystem: CDO.message
Mensaje: DISP_E_MEMBERNOTFOUND.
Este error te lo manda con el ejemplo que publiqué o ya es en tu aplicación?
Busca con Google "cdosys" o "cdo mail" o "cdosys mail"MANOLO wrote:Me puedes decir donde puedo encontrar informacion de ésto.
Espero que alguien más pruebe el ejemplo y nos diga si encuentra algún problema.
Saludos.
Manuel Mercado
manuelmercado at prodigy dot net dot mx
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: enviar emails desde fwh
Manolo,
Es imposible adivinar que está mal en tu código si no lo subes. Es muy probable que tengas algún problema sintáctico, el error MEMBER NOT FOUND es algo así como que no encuentra la variable o método, el equivalente al Message not found de Harbour.
CDO es parte de windows, por lo que te puedo asegurar que funciona y muy bien, hasta en lugares que el resto me fallaba.
Es imposible adivinar que está mal en tu código si no lo subes. Es muy probable que tengas algún problema sintáctico, el error MEMBER NOT FOUND es algo así como que no encuentra la variable o método, el equivalente al Message not found de Harbour.
CDO es parte de windows, por lo que te puedo asegurar que funciona y muy bien, hasta en lugares que el resto me fallaba.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: enviar emails desde fwh
Hola Manuel,
Tengo un artículo a medias sobre PDF, XML y formularios, y cuesta dejarlos 'presentables'. Tambien en gatera otro sobre refactoring y programar más orientado a objetos con Harbour y FW, y la importancia de los patrones de software y como afecta a los fivewinners.
Harbour advisor pretendía ser más bien el arranque de un esfuerzo colectivo, tal como lo ponía en el primer post, pero no hubo eco, los colegas prefieren seguir cada uno a su ritmo de manera individual.
Otro factor que afecta la disponibilidad de tiempo es que estoy aprendiendo algo de python, que me ha sorprendido gratamente, y que probablemente justifique otro post.
¡Cuantos elogios! Me pasa como a la gran mayoría, la falta de tiempo. Además no he tenido mucho feedback, solo un par de mensajes de agradecimiento, y otros tantos reclamando la "propiedad intelectual" de lo que escribí, lo que me quita bastante las ganas.mmercado wrote: PD a Carlos Mora.- Porqué no continúas con tu Blog Harbour Advisor? me pareció excelente su presentación además que tienes un magífico estilo en la redacción de tus temas. Gracias nuevamente.
Tengo un artículo a medias sobre PDF, XML y formularios, y cuesta dejarlos 'presentables'. Tambien en gatera otro sobre refactoring y programar más orientado a objetos con Harbour y FW, y la importancia de los patrones de software y como afecta a los fivewinners.
Harbour advisor pretendía ser más bien el arranque de un esfuerzo colectivo, tal como lo ponía en el primer post, pero no hubo eco, los colegas prefieren seguir cada uno a su ritmo de manera individual.
Otro factor que afecta la disponibilidad de tiempo es que estoy aprendiendo algo de python, que me ha sorprendido gratamente, y que probablemente justifique otro post.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
-
- Posts: 199
- Joined: Tue Apr 22, 2008 9:54 am
- Location: Valladolid, Spain.
Re: enviar emails desde fwh
Tengo exáctamente el mismo error, con el código tal cual lo publica Manuel Mercado. En vista home premium. La dll Cdosys si está presente en esta versión de vista.MANOLO wrote:Hola manuel, gracias por tu aportación, lo he integrado pero no envia el email da el siguiente error:
No se pudo enviar el mensaje
Error:1001
subc: 3
oscode: 0
subsystem: CDO.message
Mensaje: DISP_E_MEMBERNOTFOUND.
Me puedes decir donde puedo encontrar informacion de ésto.
Gracias
Este error, desde mis mínimos conocimientos, creo recordar que era porque el objeto no se llegaba a crear.Carlos Mora wrote:Manolo,
Es imposible adivinar que está mal en tu código si no lo subes. Es muy probable que tengas algún problema sintáctico, el error MEMBER NOT FOUND es algo así como que no encuentra la variable o método, el equivalente al Message not found de Harbour.
CDO es parte de windows, por lo que te puedo asegurar que funciona y muy bien, hasta en lugares que el resto me fallaba.
Saludos!
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: enviar emails desde fwh
Manuel: Muchas gracias por tu aporte.
He probado con el codigo que suministras (unicamente cambie los botones y omiti el attach), y da el siguiente error:
---------------------------------
No se pudo enviar el mensaje
Error: 1001
SubC: 16389
OSCode: 0
Subsystem: CDO.Message
Mensaje: E_FAIL
---------------------------------
Es la primera vez que pruebo emails desde FWH/xHARBOUR
Espero nos puedas ayudar.
Saludos
He probado con el codigo que suministras (unicamente cambie los botones y omiti el attach), y da el siguiente error:
---------------------------------
No se pudo enviar el mensaje
Error: 1001
SubC: 16389
OSCode: 0
Subsystem: CDO.Message
Mensaje: E_FAIL
---------------------------------
Es la primera vez que pruebo emails desde FWH/xHARBOUR
Espero nos puedas ayudar.
Saludos
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql