Autor Tema: Enviar mail a un correo externo  (Leído 33199 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Enviar mail a un correo externo
« en: 26 de Julio de 2007, 01:21:53 pm »
Con este código podremos enviar de forma sencilla un correo a una dirección e-mail externa.

Hay que tener configurado el SAPconect para que el envío se haga de forma inmediata.



  DATA: BEGIN OF i_text OCCURS 0.
          INCLUDE STRUCTURE soli.
  DATA: END OF i_text.

  DATA: wspoolnumber   LIKE  sy-spono ,
        wmailname      LIKE  sood1-objnam,
        wsubject       LIKE  sood1-objdes ,
        wrecepient(40) TYPE  c ,
        wdli           LIKE  soos1-dlinam.

  DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,
        objpara          LIKE selc  OCCURS 0 WITH HEADER LINE,
        receivers        LIKE soos1 OCCURS 0 WITH HEADER LINE.

  DATA: BEGIN OF i_receivers OCCURS 0.
          INCLUDE STRUCTURE receivers.
  DATA: END OF i_receivers.



  wsubject     = 'Entrega numero....1234567890.'.
  wrecepient   = 'tu_correo@algo.com'.



  object_hd_change-objla  = sy-langu.
  object_hd_change-objnam = wmailname.
  object_hd_change-objdes = wsubject.
  object_hd_change-objsns = 'F'.
  object_hd_change-vmtyp  = 'T'.
  object_hd_change-skips  = 'X'.
  object_hd_change-acnam  = 'SP01'.
  object_hd_change-objcp  = 'X'.



  REFRESH i_text.
  CLEAR i_text.
  i_text-line = 'Texto del mensaje'.
  APPEND i_text.



  REFRESH i_receivers.
  CLEAR i_receivers.
  i_receivers-rcdat  = sy-datum.
  i_receivers-rctim  = sy-uzeit.
  i_receivers-recextnam = wrecepient.
  i_receivers-recesc = 'U'.
  i_receivers-sndex  = 'X'.     " Express-Mail
  APPEND i_receivers.


  objpara-name = 'SPI'.
  objpara-low  = wspoolnumber.
  APPEND objpara.


  CALL FUNCTION 'SO_OBJECT_SEND'
       EXPORTING
            object_hd_change           = object_hd_change
            object_type                = 'RAW'
            owner                      = sy-uname
       TABLES
            objcont                    = i_text
            receivers                  = i_receivers
       EXCEPTIONS
       active_user_not_exist            = 1
       communication_failure            = 2
       component_not_available          = 3
       folder_not_exist                 = 4
       folder_no_authorization          = 5
       forwarder_not_exist              = 6
       note_not_exist                   = 7
       object_not_exist                 = 8
       object_not_sent                  = 9
       object_no_authorization          = 10
       object_type_not_exist            = 11
       operation_no_authorization       = 12
       owner_not_exist                  = 13
       parameter_error                  = 14
       substitute_not_active            = 15
       substitute_not_defined           = 16
       system_failure                   = 17
       too_much_receivers               = 18
       user_not_exist                   = 19
       originator_not_exist             = 20
       x_error                          = 21
       OTHERS                           = 22.

  IF sy-subrc <> 0.
    WRITE: /'Error al enviar el mail'.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  COMMIT WORK.




Fijaros en la línea donde pone: wrecepient   = 'tu_correo@algo.com'. Hay que cambiar la dirección y poner una vuestra.

Saludos...

Desconectado vmguevara2000

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #1 en: 09 de Septiembre de 2007, 11:22:49 pm »
Yo también tengo un form paa enviar correo externo.
En la version 4.6C el problema es que no funciona, teniendo confirgurado el sistema, tampoco funciona...
Puede que sea problema de configuración::....no lo creo.
Puedes decirme en que versión trabajas?
Quizás me puedas orientar. ???

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #2 en: 10 de Septiembre de 2007, 08:43:36 am »
La versión en la que estoy trabajando es la ECC 6.0.

Me imagino que la función 'SO_OBJECT_SEND' si que exista en la versión que trabajas. Tal cual está el código escrito a mi me funciona perfectamente.

Un saludo.

Desconectado marcpaus

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #3 en: 11 de Octubre de 2007, 06:12:47 pm »
Hola,

os dejo otro código que funciona siempre que el usuario tiene en su pc local instalado Outlook, de esta manera podemos enviar un correo sin tener configurado SAPConnect y además si trabajamos habitualmente con Outlook lo tendremos en Elementos Enviados.

Espero que os sirva.

Un saludo.

  Report ZMAIL.

  DATA: OUTLOOK TYPE OLE2_OBJECT.  "Outlook.Application
  DATA: ITEM TYPE OLE2_OBJECT.     "Outlook.MailItem
  DATA: LATTACH TYPE OLE2_OBJECT . "Outlook.Attachement
  DATA: SUBJECT(255) TYPE C.

*
*Enviar mail

  CREATE OBJECT OUTLOOK 'outlook.application'.

  CALL METHOD OF OUTLOOK 'CreateItem' = ITEM
    EXPORTING
      #1 = '0'.

  SET PROPERTY OF ITEM 'To' = 'la dirección de correo a la que queremos enviar'.

* Si queremos rellenar el cuerpo del mensaje
*  OPCION 1:
*    LOOP AT body_tab INTO wa_bodytab.
*      SET PROPERTY OF omail 'Body' = wa_bodytab.
*    ENDLOOP.
*  OPCION 2:
*  SET PROPERTY OF item 'Body' = ''.

  SET PROPERTY OF ITEM 'Subject' = 'Asunto del correo'.

  CALL METHOD OF ITEM 'Attachments' = 'Ruta al fichero si queremos adjuntar alguno'.

  CALL METHOD OF LATTACH 'Add'
    EXPORTING
      #1 = NOMBRE.

  CALL METHOD OF ITEM 'Send'.

  FREE OBJECT ITEM.
  FREE OBJECT OUTLOOK.
  FREE OBJECT LATTACH.




Desconectado NEO

  • Novato
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #4 en: 06 de Agosto de 2008, 12:52:36 am »
LA verdad este script está de LUUUJO!!!!

lo probé...claro configuré...el SAPconect y listo.

así que Muxas gracias.

Desconectado zoehuerta

  • Novato
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #5 en: 31 de Agosto de 2008, 04:09:12 pm »
Muchas gracias por postear el script
no sabia como hacerlo!
muy buena la info del foro para novatos como yo!!!!!
saluditos
adios

Desconectado fsandovalz

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Enviar mail a un correo externo
« Respuesta #6 en: 24 de Junio de 2010, 12:00:27 am »
Excelentes aportaciones, Muchas gracias.

Saludos.