Page 1 of 1

Enviar Email, sin outlook express

Posted: Fri Dec 18, 2009 3:24 pm
by karinha
Buenos dias mastros,

Necesito ejemplos de como enviar emails sin usar outlook express.

Muchas gracias,

Saludos.

Re: Enviar Email, sin outlook express

Posted: Fri Dec 18, 2009 3:54 pm
by derpipu
yo te recomendaria usar el CDOSYS de Windows

te paso el codigo que recopile del foro y de internet y que me sirve para enviar mis correos, espero te sea de utilidad...

Saludos

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

METHOD SendMail()
  local oError := nil
  local cEnvio := "algo@algo.com"

  TRY
    WSAStartup()
    ::cIp     := GetHostByName( "algo.com" )

    ::oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
    WITH OBJECT ::oEmailCfg:Fields
        :Item( cdoSMTPServer ):Value       := ::cIp
        :Item( cdoSMTPServerPort ):Value   := 587
        :Item( cdoSendUsing ):Value        := 2 // cdoSendUsingPickup (1), cdoSendUsingPort (2), cdoSendUsingExchange (3)
        :Item( cdoSMTPAuthenticate ):Value := .T.
        :Item( cdoSMTPUseSSL ):Value       := .F.
        :Item( cdoSendUserName ):Value     := "envio@algo.com" // direccion de la que se enviara el correo
        :Item( cdoSendPassword ):Value     := "contraseña"
        :Update()
    END WITH

    ::oEmailMsg := CREATEOBJECT ( "CDO.Message" )
    WITH OBJECT ::oEmailMsg
        :Configuration := ::oEmailCfg
        :From          := "Envio <envio@algo.com>"
        :To            := cEnvio
        :Organization  := "PRUEBAS"
        :Subject       := "ENVIO DE PRUEBAS"
        :TextBody      := "EL TEXTO DEL CORREO"
        :Send()
    END WITH

  CATCH oError
    MsgStop( "No se pudo enviar el mensaje electronico..." + CRLF +;
              "Error: "     + CHR(9) + transform( oError:GenCode,   NIL) + CRLF +;
              "SubC: "      + CHR(9) + transform( oError:SubCode,   NIL) + CRLF +;
              "OSCode: "    + CHR(9) + transform( oError:OsCode,    NIL) + CRLF +;
              "SubSystem: " + CHR(9) + transform( oError:SubSystem, NIL) + CRLF +;
              "Mensaje: "   + CHR(9) + oError:Description, oApp:cEmpresa )

  END



 

Re: Enviar Email, sin outlook express

Posted: Sat Dec 19, 2009 3:06 am
by JoseGS
Hola amigo:

Como utilizo este codigo ?

Gracias y perdona mi ignorancia...

Re: Enviar Email, sin outlook express

Posted: Sat Dec 19, 2009 4:07 pm
by MauroArevalo
Jose:

En este link encuentras un demo.

http://www.box.net/shared/o7oxcfqlsm

Espero te sirva.

Re: Enviar Email, sin outlook express

Posted: Sun Dec 20, 2009 3:18 am
by JoseGS
Hola amigo, gracias por el ejemplo, pero ejecuto el EXE que incluyes y me presenta el siguiente error al momento de enviar el mail:

No se pudo enviar el mensaje
Error: 1001
SubC: 3
OSCode: 0
SubSystem: CDO.Message
Message: DISP_MEMBERNOTFOUND

Me podras orientar ?

Re: Enviar Email, sin outlook express

Posted: Mon Dec 21, 2009 4:40 pm
by derpipu
Mira, en este caso mi servidor de correos usaba autenticacion para el envio, pero igual y juega con estos valores y haz pruebas..

Code: Select all

:Item( cdoSMTPServer ):Value       := ::cIp
        :Item( cdoSMTPServerPort ):Value   := 587
        :Item( cdoSendUsing ):Value        := 2 // cdoSendUsingPickup (1), cdoSendUsingPort (2), cdoSendUsingExchange (3)
        :Item( cdoSMTPAuthenticate ):Value := .T.
        :Item( cdoSMTPUseSSL ):Value       := .F.

 
Saludos

LF