Mail a varios Destinatarios

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • dpalavecino
    Junior Member
    • abr
    • 14

    #1

    Mail a varios Destinatarios

    Buenos dias a todos, le comento que estoy teniendo problemas para enviar correos a Varios destinatarios ya que si le paso como parametro mas de una direccion de correo cancela en programa.
    Agradeceria si alguien me puede orientar un poco.
    Saludos

    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
    document_data = w_doc_data
    put_in_outbox = 'X'
    sender_address = ld_sender_address
    sender_address_type = ld_sender_address_type
    commit_work = 'X'
    IMPORTING
    sent_to_all = w_sent_all
    TABLES
    packing_list = t_packing_list
    contents_bin = t_attachment
    contents_txt = it_message
    receivers = t_receivers
    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.

    Demian M. Palavecino
  • martin89
    Member
    • may
    • 53

    #2
    Que tal,

    mirá yo para enviar correos use esta función

    * Sending the document
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = doc_chng
    put_in_outbox = 'X'
    commit_work = 'X'
    TABLES
    packing_list = lt_objpack
    object_header = lt_objhead
    contents_bin = lt_objbin
    contents_txt = lt_objtxt
    receivers = lt_reclist
    EXCEPTIONS
    too_many_receivers = 1
    document_not_sent = 2
    operation_no_authorization = 4
    OTHERS = 99.


    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.


    donde en la tabla LT_RECLIST le paso los destinatarios
    (la completé de esta manera). Seguramente vas a tener qe cambiar el campo REC_TYPE proqe yo use una lista de distribución.

    LOOP AT lt_mails INTO le_mails.
    lt_reclist-receiver = le_mails-grupo. "NOMBRE DE LA LISTA
    lt_reclist-express = 'X'.
    lt_reclist-rec_type = 'C'. "Usa lista de distribución.
    lt_reclist-copy = 'X'.
    APPEND lt_reclist.
    ENDLOOP.




    saludos!

    Comentario

    • darona
      Member
      • jun
      • 44

      #3
      Esa es la buena

      La función buena es la que usa Martin89, ya que usa una estructura para los destinatarios a la que puedes añadir todos los que quieras (además puede enviar documentos adjuntos).

      Si prefieres seguir usando la tuya tendrás que crearte una tabla interna o rango en el que introducir todos los destinatarios y hacer un loop para ir cambiando el destinatario, pero eso lo que hará es enviar el mismo mail varias veces, no un único mail a todos los destinatarios.

      Espero que te haya servido de ayuda.

      Saludos,
      David.

      Comentario

      • fvergara
        Junior Member
        • abr
        • 14

        #4
        Consulta maestros

        Es posible tener un ejemplo de código de abap agradeceria mucho recien me inicio en el tema de abap y no veo un ejemplo mas completo.

        Gracias de antemano

        Comentario

        • nievesmp
          Member
          • abr
          • 95

          #5
          form rellena_destinatarios
          tables receptores structure somlreci1
          changing sw_alguno.
          *
          data: begin of usu_rec occurs 2,
          email like zsd_info_interf-email,
          end of usu_rec.
          sw_alguno = 'X'.
          clear receptores.
          * receptores-receiver = usu_rec-email.
          receptores-receiver = 'usuario@prueba.com'.
          receptores-rec_type = 'U'. "dirección internet
          receptores-express = 'X'.
          append receptores.
          sw_alguno = 'X'.
          clear receptores.
          * receptores-receiver = usu_rec-email.
          receptores-receiver = 'usuario@prueba.com'.
          receptores-rec_type = 'U'. "dirección internet
          receptores-express = 'X'.
          append receptores.

          endform. "rellena_destinatarios
          * Aqui se acaban de cargar dos destinatarios, también se puede hacer con un loop direccionando a una tabla.

          * En la parte donde pases la funcíon pasa la tabla de dsitinatarios:


          call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          exporting
          document_data = dat_asunto
          put_in_outbox = 'X'
          *>>>>>>>>> OJO: cuando es a una dirección externa es necesario activar
          * el commit work; sino no se enviará nada:
          commit_work = 'X'
          * IMPORTING
          * SENT_TO_ALL =
          * NEW_OBJECT_ID =
          tables
          packing_list = dat_pack
          object_header = dat_cab
          contents_bin = dat_bin
          contents_txt = dat_cuerpo
          * CONTENTS_HEX =
          * OBJECT_PARA =
          * OBJECT_PARB =
          receivers = receptores " Aquí va la tabla de destinatarios
          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.

          endform. "ENVIA_MENSAJE

          Comentario

          • ALNICO
            Senior Member
            • may
            • 107

            #6
            Saludos a todos y disculpen la intromision , pero ya que estan hablando de esta funcion me parecio pertinente pedir ayuda con este referente , estoy tratando de automatizar la transaccion sost que es donde va el correo una vez que se usa la funcion que se habla aqui , ahora el problema es que por mas que hago la grabacion no procesa el envio , podrian darme algunos tips o decirme como podria hacerlo ( sin neceisdad de job ) porque lo que se quiere que una vez que se envie envie el correo usando la funcion esta salga de una vez sin tener que esperar en sost .

            Comentario

            • Belerophonte
              Junior Member
              • mar
              • 11

              #7
              Envio de correo a diferentes destinatarios

              Hola a todos yo utilice lo siguiente, 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

              • yapbig
                Senior Member
                • may
                • 261

                #8
                ALNICO:
                Luego de que se ejecute todo el código que genera tu correo agrega el siguiente código y se va a enviar el mismo

                SUBMIT rsconn01 WITH mode = 'INT'
                WITH output = 'X'
                AND RETURN.

                Saludos cordiales,
                Gustavo A. Biglia
                Consultor SAP FI

                Comentario

                • sereyo
                  Junior Member
                  • jun
                  • 2

                  #9
                  hola,

                  quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1.
                  En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar?

                  Un saludo.

                  Comentario

                  • sereyo
                    Junior Member
                    • jun
                    • 2

                    #10
                    duda mail variso destinatarios

                    hola,

                    quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1.
                    En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar?

                    Un saludo.

                    Comentario

                    • ixtellop
                      Junior Member
                      • sep
                      • 1

                      #11
                      Drp

                      [hola

                      Alguie Me Puede Auxiliar Para Saber Como Funcona La Transaccion Drps

                      Comentario

                      Trabajando...