Funciones para correo externo?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Ikerga
    Junior Member
    • abr
    • 17

    #1

    Funciones para correo externo?

    Hola, buenos dias.

    Existe alguna funcion donde se pueda meter los parametros para mandar correo externo?? Tipo "para" "asunto"....
    Y como configurarlo, pop3... o lo que sea.
    No se si se entiende lo suficientemente claro, soy bastante novato en esto de la programacion, llevo dos semanitas.
    Gracias de antemano a tod@s.
  • nenuke
    Member
    • sep
    • 87

    #2
    Hola,

    el siguiente ejemplo te muestra como usar la función SO_NEW_DOCUMENT_SEND_API1 para enviar correo externo.
    Debes consultar si está habilitado el servicio de envio de correo externo en tu maquina.


    report zrich_0003 .

    data: maildata type sodocchgi1.
    data: mailtxt type table of solisti1 with header line.
    data: mailrec type table of somlrec90 with header line.

    start-of-selection.

    clear: maildata, mailtxt, mailrec.
    refresh: mailtxt, mailrec.

    maildata-obj_name = 'TEST'.
    maildata-obj_descr = 'Test'.
    maildata-obj_langu = sy-langu.

    mailtxt-line = 'This is a test'.
    append mailtxt.

    mailrec-receiver = 'someone@somewhere.com'.
    mailrec-rec_type = 'U'.
    append mailrec.

    call function 'SO_NEW_DOCUMENT_SEND_API1'
    exporting
    document_data = maildata
    document_type = 'RAW'
    put_in_outbox = 'X'
    tables
    object_header = mailtxt
    object_content = mailtxt
    receivers = mailrec
    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.
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.


    Un saludo.

    Comentario

    • Ikerga
      Junior Member
      • abr
      • 17

      #3
      Gracias nenuke.
      He intentado hacerlo y no me envia nada, hay que hacer algun cambio mas aparte de poner la direccion de correo a la que quieres mandar el mail??
      Gracias!

      Comentario

      • nenuke
        Member
        • sep
        • 87

        #4
        Hola,

        verificaste en la transacción SOST si t ha generado algun objeto? o si está en tu bandeja de salida en la transacción SO01.??
        A mi si que me lo envía...

        Te adjunto otro código de ejempl que tenía por aki


        *&---------------------------------------------------------------------*
        *& Report ZSENDEMAIL *
        *& *
        *&---------------------------------------------------------------------*
        *& Ejemplo para enviar email via SAPCONNECT *
        *& *
        *&---------------------------------------------------------------------*
        REPORT zsendemail .

        PARAMETERS: psubject(40) type c default 'Hello',
        p_email(40) type c default 'alguien@hotmail.com' .

        data: it_packing_list like sopcklsti1 occurs 0 with header line,
        it_contents like solisti1 occurs 0 with header line,
        it_receivers like somlreci1 occurs 0 with header line,
        it_attachment like solisti1 occurs 0 with header line,
        gd_cnt type i,
        gd_sent_all(1) type c,
        gd_doc_data like sodocchgi1,
        gd_error type sy-subrc.

        data: it_message type standard table of SOLISTI1 initial size 0
        with header line.

        ************************************************** *********************
        *START-OF-SELECTION.
        START-OF-SELECTION.

        Perform populate_message_table.

        *Envía mensajes a email externo, no está totalmente enviado hasta ejecutar
        *el programa(rsconn01)
        PERFORM send_email_message.

        *Instrucciones de envío para SAPCONNECT para enviar email(rsconn01)
        perform initiate_mail_execute_program.


        *&---------------------------------------------------------------------*
        *& Form POPULATE_MESSAGE_TABLE
        *&---------------------------------------------------------------------*
        * Adds text to email text table
        *----------------------------------------------------------------------*
        form populate_message_table.
        Append 'Email line 1' to it_message.
        Append 'Email line 2' to it_message.
        Append 'Email line 3' to it_message.
        Append 'Email line 4' to it_message.
        endform. " POPULATE_MESSAGE_TABLE


        *&---------------------------------------------------------------------*
        *& Form SEND_EMAIL_MESSAGE
        *&---------------------------------------------------------------------*
        * Send email message
        *----------------------------------------------------------------------*
        form send_email_message.
        * Fill the document data.
        gd_doc_data-doc_size = 1.

        * Populate the subject/generic message attributes
        gd_doc_data-obj_langu = sy-langu.
        gd_doc_data-obj_name = 'SAPRPT'.
        gd_doc_data-obj_descr = psubject.
        gd_doc_data-sensitivty = 'F'.

        * Describe the body of the message
        clear it_packing_list.
        refresh it_packing_list.
        it_packing_list-transf_bin = space.
        it_packing_list-head_start = 1.
        it_packing_list-head_num = 0.
        it_packing_list-body_start = 1.
        describe table it_message lines it_packing_list-body_num.
        it_packing_list-doc_type = 'RAW'.
        append it_packing_list.

        * Add the recipients email address
        clear it_receivers.
        refresh it_receivers.
        it_receivers-receiver = p_email.
        it_receivers-rec_type = 'U'.
        it_receivers-com_type = 'INT'.
        it_receivers-notif_del = 'X'.
        it_receivers-notif_ndel = 'X'.
        append it_receivers.

        * Call the FM to post the message to SAPMAIL
        call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        exporting
        document_data = gd_doc_data
        put_in_outbox = 'X'
        importing
        sent_to_all = gd_sent_all
        tables
        packing_list = it_packing_list
        contents_txt = it_message
        receivers = it_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.

        * Store function module return code
        gd_error = sy-subrc.

        * Get it_receivers return code
        loop at it_receivers.
        endloop.
        endform. " SEND_EMAIL_MESSAGE


        *&---------------------------------------------------------------------*
        *& Form INITIATE_MAIL_EXECUTE_PROGRAM
        *&---------------------------------------------------------------------*
        * Instructs mail send program for SAPCONNECT to send email.
        *----------------------------------------------------------------------*
        form initiate_mail_execute_program.
        wait up to 2 seconds.
        if gd_error eq 0.
        submit rsconn01 with mode = 'INT'
        with output = 'X'
        and return.
        endif.
        endform. " INITIATE_MAIL_EXECUTE_PROGRAM

        Comentario

        • Ikerga
          Junior Member
          • abr
          • 17

          #5
          Gracias de nuevo nenuke. Ya probare esto nuevo, es viernes y ahota terminamos asike el lunes mas y mejor.
          Al final he pedido sopitas al jefe y me lo ha solucionado el. jeje
          Te lo agradezco de nuevo.
          Dame tiempo y algun dia quiza pueda ayudarte yo.

          Comentario

          Trabajando...