Envío de correo desde cuenta genérica

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • felix_cid
    Member
    • mar
    • 73

    #1

    Envío de correo desde cuenta genérica

    Hola a todos:

    Por casualidad conoce alguien de Uds. la manera de poder enviar correo desde SAP a uno a varios destinatarios, pero cuyo origen sea SIEMPRE una cuenta genérica, independiente de la cuenta del usuario que está ejecutando el programa.

    Espero sus noticias y muchas gracias a todos por vuestra ayuda.

    Saludos.
  • Jotabin
    Senior Member
    • may
    • 117

    #2
    si usás la función estándar SO_DOCUMENT_SEND_API1 para el envío de mails, el remitente se define vía parámetros
    resistance is futile

    Comentario

    • felix_cid
      Member
      • mar
      • 73

      #3
      ¿Me podrías dar un ejemplo de como poder utilizar la función SO_DOCUMENT_SEND_API1?.....he tratado de probar de diferentes maneras y parámetros, pero no he logrado que pueda enviar un correo EXTERNO, sólo me envía correos al inbox de SAP. Probé cambiando parámetros e indicando que es un correo tipo U y del tipo INT, pero no me aparece en ningún momento en la transacción SCOT.

      Espero tus comentarios, de antemano muchas gracias.

      Comentario

      • tomasap
        Member
        • jun
        • 32

        #4
        Buenas, ¿Encontrste algo felix?

        Gracais

        Comentario

        • Neo_25
          Member
          • jun
          • 51

          #5
          A ver si puedo ayudar.
          Yo uso este código para mandar a varias personas.
          El q lo envía lo puedes poner tú o te lo coge la mákina del usuario actual.

          Luego hay q liberarlo desde la transacción SCOT, o tardará un rato en hacerlo sólo.

          Si aún así no te llega el email, es porque han de modificar algo en SAP para q deje mandar correos fuera.

          Eso es otra historia.

          Saludos

          Código:
          **********************************************
          * Email
          **********************************************
          * Declaraciones de tablas internas
          DATA: i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
          
          ** Objetos a mandar por email
                i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
                i_objtxt  LIKE solisti1   OCCURS 0 WITH HEADER LINE,
                i_objbin  LIKE solisti1   OCCURS 0 WITH HEADER LINE,
                i_reclist LIKE somlreci1  OCCURS 0 WITH HEADER LINE,
          
          * Declaraciones de estructuras
                wa_objhead  TYPE soli_tab,
                wa_doc_chng TYPE sodocchgi1,
                w_data      TYPE sodocchgi1,
          
          * Declaración de variables
                v_len_out   TYPE so_obj_len,
                v_len_outn  TYPE i,
                v_lines_txt TYPE i,
                v_lines_bin TYPE i,
          
          * Importar de la bapi
                zsend_to_all TYPE so_text001,
                znew_order   TYPE so_obj_id.
          
          
          *******************************************************************
          */////////////////////////////////////////////////////////////
          * A S U N T O  , R E M I T E N T E  y  D E S T I N A T A R I O
          */////////////////////////////////////////////////////////////
          DATA: asunto_email(255) TYPE c VALUE 'Asunto EMAIL'.
          [B]DATA: remitente    TYPE so_rec_ext. "kien envía, se puede poner uno fijo[/B]
          [B]DATA: destinatario TYPE ad_smtpadr 
                VALUE 'direccion ARROBA direccion.com'.[/B]
          * Si no se pone remitente, el sistema lo coge automáticamente
          * de la sesión del usuario, de este usuario
          *******************************************************************
          
          * Variable del texto a enviar
          DATA: v_texto TYPE string.
          TYPES: BEGIN OF t_texttable,
                   line(255) TYPE c,
                 END OF t_texttable.
          * Estructura del texto a enviar
          DATA: w_texttable TYPE t_texttable.
          * Tabla donde estará el texto a enviar
          DATA: i_texttable TYPE TABLE OF t_texttable.
          
          REFRESH: i_reclist, i_objtxt, i_objbin, i_objpack.
          CLEAR wa_objhead.
          
          *******************************************************************
          *////////////////////////////////////////
          * T E X T O  D E L  E M A I L
          *////////////////////////////////////////
          *-----1ª línea
          v_texto = 'Prueba del cuerpo del email, primera línea.'.
          w_texttable-line = v_texto.
          APPEND w_texttable TO i_texttable.
          *-----2ª línea
          v_texto = 'Podemos seguir escribindo, segunda línea.'.
          w_texttable-line = v_texto.
          APPEND w_texttable TO i_texttable.
          *******************************************************************
          
          * i_texttable es una tabla con un campo texto ( 255 caracteres )
          * cargamos el cuerpo del email en la tabla a mandar
          i_objtxt[] = i_texttable[].
          
          DESCRIBE TABLE i_objtxt LINES v_lines_txt.
          READ TABLE i_objtxt INDEX v_lines_txt.
          wa_doc_chng-obj_name   = asunto_email.
          wa_doc_chng-expiry_dat = sy-datum + 10.
          wa_doc_chng-obj_descr  = asunto_email.
          wa_doc_chng-sensitivty = 'F'.
          wa_doc_chng-doc_size   = v_lines_txt * 255.
          
          CLEAR i_objpack-transf_bin.
          i_objpack-head_start = 1.
          i_objpack-head_num   = 0.
          i_objpack-body_start = 1.
          i_objpack-body_num   = v_lines_txt.
          i_objpack-doc_type   = 'RAW'.
          APPEND i_objpack.
          
          
          * ---> Destinatario del correo
          CLEAR i_reclist.
          i_reclist-receiver   = destinatario.
          i_reclist-rec_type   = 'U'.  "Usuario de internet
          APPEND i_reclist.
          [B]** Akí puedes apendear los usuarios q kieras
          ** con un loop a una tabla ...
          *CLEAR i_reclist.
          *i_reclist-receiver   = destinatario2.
          *i_reclist-rec_type   = 'U'.  "Usuario de internet
          *APPEND i_reclist.[/B]
          
          
          * ---> Envio de correo al destinatario
          CLEAR i_objpack.
          CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
          EXPORTING
            document_data              = wa_doc_chng
            put_in_outbox              = 'X'
            sender_address             = remitente
            sender_address_type        = 'SMTP'
            commit_work                = 'X'
          IMPORTING
            sent_to_all                = zsend_to_all
            new_object_id              = znew_order
          TABLES
            packing_list               =  i_objpack
            object_header              =  wa_objhead
            contents_bin               =  i_objbin
            contents_txt               =  i_objtxt
          *  contents_hex               = contents_hex "no uso
          *  object_para                = object_para  "no uso
          *  object_parb                = object_parb  "no uso
            receivers                  = i_reclist
          EXCEPTIONS
            too_many_receivers         = 1
            document_not_sent          = 2
            document_type_not_exist    = 3
            operation_no_authorization = 4
            parameter_error            = 5
            x_error                    = 6
            enqueue_error              = 7
            OTHERS                     = 8.

          Comentario

          • Belerophonte
            Junior Member
            • mar
            • 11

            #6
            Envio de Correo

            Hola , yo mande correos de esta forma, solo que hay que pasarle como parametro el correo al cual sera enviado, ojala te sirva.

            Saludos

            FORM send .
            DATA lv_texto(30) TYPE c.

            REFRESH main_text.

            TRY.

            * -------- create persistent send request ------------------------
            send_request = cl_bcs=>create_persistent( ).

            * -------- create and set document with attachment ---------------
            * create document object from internal table with text
            APPEND 'Pedidos próximos a vencer y vencidos' TO main_text.
            CONCATENATE 'Grupo de Compras:' gc_tab
            gv_ekgrp gc_tab
            INTO lv_texto.
            APPEND lv_texto TO main_text.
            APPEND 'El contenido del reporte esta incluido en el archivo anexo' TO main_text.

            document = cl_document_bcs=>create_document(
            i_type = 'RAW'
            i_text = main_text
            i_subject = 'Pedidos próximos a vencer y vencidos' ).

            * add the spread sheet as attachment to document object
            document->add_attachment(
            i_attachment_type = 'xls'
            i_attachment_subject = 'Pedidos'
            i_attachment_size = size
            i_att_content_hex = binary_content ).

            * add document object to send request
            send_request->set_document( document ).

            * --------- add recipient (e-mail address) -----------------------
            * create recipient object
            LOOP AT t_mailto INTO w_mailto.
            recipient = cl_cam_address_bcs=>create_internet_address( w_mailto-mailto ).
            * add recipient object to send request
            send_request->add_recipient( recipient ).
            ENDLOOP.



            * ---------- send document ---------------------------------------
            sent_to_all = send_request->send( i_with_error_screen = 'X' ).

            COMMIT WORK.

            IF sent_to_all IS INITIAL.
            MESSAGE i500(sbcoms) WITH mailto.
            ELSE.
            MESSAGE s022(so).
            ENDIF.

            * ------------ exception handling ----------------------------------
            * replace this rudimentary exception handling with your own one !!!
            CATCH cx_bcs INTO bcs_exception.
            MESSAGE i865(so) WITH bcs_exception->error_type.
            ENDTRY.
            ENDFORM. " SEND

            Comentario

            Trabajando...