Amigos del foro
Adapté un código que vi en un post de Manuel Mercado, el usa TsButton
Yo no he manejado esta clase por lo que la adpaté con un diálogo desde recursos
El problema es que puedo enviar el correo que aparece en la variable cAttach por defecto o puedo seleccionar con ON CHANGE, pero no puedo adjuntar más de un archivo por que me manda error.
Si alguien pudiera ayudarme
Saludos
Este es mi codigo
Adapté un código que vi en un post de Manuel Mercado, el usa TsButton
Yo no he manejado esta clase por lo que la adpaté con un diálogo desde recursos
El problema es que puedo enviar el correo que aparece en la variable cAttach por defecto o puedo seleccionar con ON CHANGE, pero no puedo adjuntar más de un archivo por que me manda error.
Si alguien pudiera ayudarme
Saludos
Este es mi codigo
#include "FiveWin.ch"
#include "CdoSys.ch"
//---------------------------------------------------------------------------------------------//
Function Main()
Local oDlg, aCtl[ 9 ], oBEnv, oBSal
Local cMailServer := PadR( "smtp.prodigy.net.mx", 60 ), ; // servidor de correo
cFrom := PadR( "juan_arroyo_t@prodigy.net.mx", 60 ), ; // remitente
cTo := PadR( "juan_arroyo_t@prodigy.net.mx", 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", 60 ), ;// 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
SET RESOURCES TO "correo.dll"
DEFINE DIALOG oDlg RESOURCE "EnvCor"
oDlg:lHelpIcon := .f.
REDEFINE GET aCtl[ 1 ] VAR cMailServer ID 101 OF oDlg
aCtl[ 1 ]:Disable()
REDEFINE GET aCtl[ 2 ] VAR cFrom ID 102 OF oDlg
aCtl[ 2 ]:Disable()
REDEFINE GET aCtl[ 3 ] VAR cTo ID 103 OF oDlg ;
UPDATE PICTURE "@K"
REDEFINE GET aCtl[ 4 ] VAR cBCC ID 104 OF oDlg ;
UPDATE PICTURE "@K"
REDEFINE GET aCtl[ 5 ] VAR cAttach ID 105 OF oDlg ;
UPDATE PICTURE "@K" ;
ON CHANGE fAddAttach( aCtl[ 5 ] )
REDEFINE GET aCtl[ 6 ] VAR cSubject ID 106 OF oDlg ;
UPDATE PICTURE "@K"
REDEFINE GET aCtl[ 7 ] VAR cUser ID 107 OF oDlg ;
UPDATE PICTURE "@K"
REDEFINE GET aCtl[ 8 ] VAR cPass ID 108 OF oDlg ;
UPDATE PICTURE "@K"
REDEFINE GET aCtl[ 9 ] VAR cBody ID 110 OF oDlg ;
UPDATE PICTURE "@!"
REDEFINE BUTTON oBEnv ID 111 OF oDlg ;
ACTION fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, ;
cBCC, cUser, cPass, nPort )
REDEFINE BUTTON oBSal ID 112 OF oDlg ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
SET RESOURCES TO
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", 5 )
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 ), 60 ) )
EndIf
oGet:cText( cAttach )
Return Nil