Send mail without abap

Hello, I want create a job that execute all days 1 of months. The job has to send a mail.
The mail is always the same and to the same users.
Can I have this without abap program?
Can the job trigger the mail directly?
Thanks.

Hello Isabel...
I guess this link could help you
Note 455140 - Configuration of e-mail, fax, paging or SMS using SMTP
https://service.sap.com/sap/support/notes/455140
Regards

Similar Messages

  • Sending mail without attachment file

    Hi Sapfans:
    I would like to send mail without attachment file, just a notice,
    needing multiple receiver, can change the mail title,
    Which function shoud I use?
    I just found out sending mail with attachment file there,
    Thanks a lot!

    Hi Alchie,
    Please take a look at my example below. It sens e-mail to multiple recipients without attachments.
    FUNCTION-POOL zts0001                    MESSAGE-ID sv.
    INCLUDE lsvimdat                                . "general data decl.
    INCLUDE lzts0001t00                             . "view rel. data dcl.
    */ Author: Aris Hidalgo
    */ Created on: September 7, 2006
    */ Purpose of program: This will send out e-mails to specified users in
    */ custom table ZSHIPTO_EMAIL whenever records have been deleted or
    */ modified via the maintenance view of ZTS0001. The changes will also
    */ be reflected in custom table ZTS_STPGEOLOC.
    TABLES: zts_stpgeoloc,
            zshipto_email,
            kna1.
    FIELD-SYMBOLS: <fs_old_total> TYPE ANY.
    *       CLASS lcl_main DEFINITION ABSTRACT
    CLASS lcl_main DEFINITION ABSTRACT.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_zts0001_old,
                kunnr    TYPE zts0001-kunnr,
                cdseq    TYPE zts0001-cdseq,
                zaddress TYPE zts0001-zaddress,
                zcperson TYPE zts0001-zcperson,
                zcnumber TYPE zts0001-zcnumber,
               END OF t_zts0001_old.
        TYPES: BEGIN OF t_zts0001_new,
                kunnr    TYPE zts0001-kunnr,
                cdseq    TYPE zts0001-cdseq,
                zaddress TYPE zts0001-zaddress,
                zcperson TYPE zts0001-zcperson,
                zcnumber TYPE zts0001-zcnumber,
               END OF t_zts0001_new.
        TYPES: BEGIN OF t_zts_stpgeoloc,
                kunnr    TYPE zts_stpgeoloc-kunnr,
                cdseq    TYPE zts_stpgeoloc-cdseq,
                zaddress TYPE zts_stpgeoloc-zaddress,
                zcperson TYPE zts_stpgeoloc-zcperson,
                zcnumber TYPE zts_stpgeoloc-zcnumber,
               END OF t_zts_stpgeoloc.
        TYPES: BEGIN OF t_del_entries,
                kunnr    TYPE zts0001-kunnr,
                cdseq    TYPE zts0001-cdseq,
                zaddress TYPE zts0001-zaddress,
                zcperson TYPE zts0001-zcperson,
                zcnumber TYPE zts0001-zcnumber,
                name1    TYPE kna1-name1,
               END OF t_del_entries.
        TYPES: BEGIN OF t_modified_entries,
                kunnr       TYPE zts0001-kunnr,
                cdseq       TYPE zts0001-cdseq,
                old_address TYPE zts0001-zaddress,
                new_address TYPE zts0001-zaddress,
                old_person  TYPE zts0001-zcperson,
                new_person  TYPE zts0001-zcperson,
                old_number  TYPE zts0001-zcnumber,
                new_number  TYPE zts0001-zcnumber,
                name1       TYPE kna1-name1,
               END OF t_modified_entries.
        DATA: gt_zts0001_old      TYPE STANDARD TABLE OF t_zts0001_old,
              gt_zts0001_new      TYPE HASHED   TABLE OF t_zts0001_new
                                           WITH UNIQUE KEY kunnr cdseq,
              gt_zts_stpgeoloc    TYPE STANDARD TABLE OF t_zts_stpgeoloc,
              gt_del_entries      TYPE STANDARD TABLE OF t_del_entries,
              gt_modified_entries TYPE STANDARD TABLE OF t_modified_entries,
              gt_zshipto_email    TYPE STANDARD TABLE OF zshipto_email,
              t_maildata          TYPE sodocchgi1,
              gt_mailtxt          TYPE STANDARD TABLE OF solisti1,
              gt_mailrec          TYPE STANDARD TABLE OF somlreci1.
        DATA: v_old_total     TYPE i,
              v_new_total     TYPE i,
              v_flag(1)       TYPE c,
              v_counter(1)    TYPE c,
              v_contents(255) TYPE c.
    ENDCLASS.
    *       CLASS lcl_get_old_recs DEFINITION
    CLASS lcl_get_old_recs DEFINITION INHERITING FROM lcl_main.
      PUBLIC SECTION.
        METHODS: export_old_recs.
    ENDCLASS.
    *       CLASS lcl_get_old_recs IMPLEMENTATION
    CLASS lcl_get_old_recs IMPLEMENTATION.
      METHOD export_old_recs.
        SELECT kunnr cdseq zaddress zcperson zcnumber
        FROM zts0001
        INTO TABLE gt_zts0001_old.
        v_old_total = sy-dbcnt.
        ASSIGN v_old_total TO <fs_old_total>.
        EXPORT gt_zts0001_old = gt_zts0001_old TO MEMORY ID 'AVH'.
        CLEAR gt_zts0001_old. REFRESH gt_zts0001_old.
      ENDMETHOD.
    ENDCLASS.
    *       CLASS lcl_old_and_new DEFINITION
    CLASS lcl_old_and_new DEFINITION INHERITING FROM lcl_main.
      PUBLIC SECTION.
        METHODS: compare_old_and_new.
    ENDCLASS.
    *       CLASS lcl_old_and_new IMPLEMENTATION
    CLASS lcl_old_and_new IMPLEMENTATION.
      METHOD compare_old_and_new.
        DATA: wa_del_entries    LIKE LINE OF gt_del_entries.
        FIELD-SYMBOLS: <fs_old> LIKE LINE OF gt_zts0001_old,
                       <fs_new> LIKE LINE OF gt_zts0001_new.
        SELECT kunnr cdseq zaddress zcperson zcnumber
        FROM zts0001
        INTO TABLE gt_zts0001_new.
        v_new_total = sy-dbcnt.
        IF v_new_total <> <fs_old_total>.
          IMPORT gt_zts0001_old = gt_zts0001_old FROM MEMORY ID 'AVH'.
          LOOP AT gt_zts0001_old ASSIGNING <fs_old>.
            READ TABLE gt_zts0001_new WITH TABLE KEY kunnr = <fs_old>-kunnr
                                                     cdseq = <fs_old>-cdseq
                                                     ASSIGNING <fs_new>.
            IF sy-subrc <> 0.
              MOVE-CORRESPONDING <fs_old> TO wa_del_entries.
              APPEND wa_del_entries TO gt_del_entries.
              CLEAR wa_del_entries.
              DELETE FROM zts_stpgeoloc
              WHERE kunnr = <fs_old>-kunnr
                AND cdseq = <fs_old>-cdseq.
            ENDIF.
          ENDLOOP.
          IF NOT gt_del_entries[] IS INITIAL.
            EXPORT gt_del_entries = gt_del_entries TO MEMORY ID 'DEL'.
          ENDIF.
          REFRESH gt_zts0001_old.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    *       CLASS lcl_check_changes DEFINITION
    CLASS lcl_check_changes DEFINITION INHERITING FROM lcl_main.
      PUBLIC SECTION.
        METHODS: check_for_changes.
    ENDCLASS.
    *       CLASS lcl_check_changes IMPLEMENTATION
    CLASS lcl_check_changes IMPLEMENTATION.
      METHOD check_for_changes.
        TYPES: BEGIN OF t_zts_stpgeoloc,
                mandt    TYPE zts_stpgeoloc-mandt,
                kunnr    TYPE zts_stpgeoloc-kunnr,
                cdseq    TYPE zts_stpgeoloc-cdseq,
                zcgeoloc TYPE zts_stpgeoloc-zcgeoloc,
                zaddress TYPE zts_stpgeoloc-zaddress,
                zcperson TYPE zts_stpgeoloc-zcperson,
                zcnumber TYPE zts_stpgeoloc-zcnumber,
               END OF t_zts_stpgeoloc.
        DATA: wa_modified_entries LIKE LINE OF gt_modified_entries,
              lt_zts_stpgeoloc    TYPE HASHED TABLE OF t_zts_stpgeoloc
                                       WITH UNIQUE KEY kunnr cdseq,
              wa_zts_stpgeoloc    LIKE LINE OF lt_zts_stpgeoloc.
        FIELD-SYMBOLS: <fs_zts0001_old> LIKE LINE OF gt_zts0001_old,
                       <fs_zts0001_new> LIKE LINE OF gt_zts0001_new.
        IMPORT gt_zts0001_old = gt_zts0001_old FROM MEMORY ID 'AVH'.
        SELECT kunnr cdseq zcgeoloc zaddress zcperson zcnumber
        FROM zts_stpgeoloc
        INTO CORRESPONDING FIELDS OF TABLE lt_zts_stpgeoloc.
        SELECT kunnr cdseq zaddress zcperson zcnumber
        FROM zts0001
        INTO TABLE gt_zts0001_new.
        LOOP AT gt_zts0001_old ASSIGNING <fs_zts0001_old>.
          READ TABLE gt_zts0001_new WITH TABLE KEY
                                         kunnr = <fs_zts0001_old>-kunnr
                                         cdseq = <fs_zts0001_old>-cdseq
                                         ASSIGNING <fs_zts0001_new>.
          IF sy-subrc = 0.
            READ TABLE lt_zts_stpgeoloc WITH TABLE KEY
                                            kunnr = <fs_zts0001_new>-kunnr
                                            cdseq = <fs_zts0001_new>-cdseq
                                            INTO wa_zts_stpgeoloc.
            IF sy-subrc = 0.
              wa_zts_stpgeoloc-mandt    = sy-mandt.
              wa_zts_stpgeoloc-kunnr    = <fs_zts0001_new>-kunnr.
              wa_zts_stpgeoloc-cdseq    = <fs_zts0001_new>-cdseq.
              wa_zts_stpgeoloc-zcgeoloc = space.
              wa_zts_stpgeoloc-zaddress = <fs_zts0001_new>-zaddress.
              wa_zts_stpgeoloc-zcperson = <fs_zts0001_new>-zcperson.
              wa_zts_stpgeoloc-zcnumber = <fs_zts0001_new>-zcnumber.
              MODIFY zts_stpgeoloc FROM wa_zts_stpgeoloc.
              COMMIT WORK AND WAIT.
            ENDIF.
    *       address
            IF <fs_zts0001_old>-zaddress <> <fs_zts0001_new>-zaddress.
              MOVE: <fs_zts0001_new>-kunnr  TO wa_modified_entries-kunnr,
                    <fs_zts0001_new>-cdseq  TO wa_modified_entries-cdseq,
              <fs_zts0001_old>-zaddress TO wa_modified_entries-old_address,
              <fs_zts0001_new>-zaddress TO wa_modified_entries-new_address.
              v_flag = 1.
            ENDIF.
    *       person
            IF <fs_zts0001_old>-zcperson <> <fs_zts0001_new>-zcperson.
              MOVE: <fs_zts0001_new>-kunnr  TO wa_modified_entries-kunnr,
                    <fs_zts0001_new>-cdseq  TO wa_modified_entries-cdseq,
              <fs_zts0001_old>-zcperson TO wa_modified_entries-old_person,
              <fs_zts0001_new>-zcperson TO wa_modified_entries-new_person.
              v_flag = 1.
            ENDIF.
    *       number
            IF <fs_zts0001_old>-zcnumber <> <fs_zts0001_new>-zcnumber.
              MOVE: <fs_zts0001_new>-kunnr  TO wa_modified_entries-kunnr,
                    <fs_zts0001_new>-cdseq  TO wa_modified_entries-cdseq,
              <fs_zts0001_old>-zcnumber TO wa_modified_entries-old_number,
              <fs_zts0001_new>-zcnumber TO wa_modified_entries-new_number.
              v_flag = 1.
            ENDIF.
          ENDIF.
          IF v_flag = 1.
            APPEND wa_modified_entries TO gt_modified_entries.
            CLEAR wa_modified_entries.
          ENDIF.
    *     update ZTS_STPGEOLOC based from the modified records in ZTS0001
          IF v_flag = 1.
            CLEAR v_flag.
            UPDATE zts_stpgeoloc SET zaddress  = <fs_zts0001_new>-zaddress
                                      zcperson = <fs_zts0001_new>-zcperson
                                      zcnumber = <fs_zts0001_new>-zcnumber
                                   WHERE kunnr = <fs_zts0001_new>-kunnr
                                     AND cdseq = <fs_zts0001_new>-cdseq.
          ENDIF.
        ENDLOOP.
        IF NOT gt_modified_entries[] IS INITIAL.
        EXPORT gt_modified_entries = gt_modified_entries TO MEMORY ID 'MOD'
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    *       CLASS lcl_messages DEFINITION
    CLASS lcl_messages DEFINITION INHERITING FROM lcl_main.
      PUBLIC SECTION.
        METHODS: create_message.
    ENDCLASS.
    *       CLASS lcl_messages IMPLEMENTATION
    CLASS lcl_messages IMPLEMENTATION.
      METHOD create_message.
        FIELD-SYMBOLS: <fs_email> LIKE LINE OF gt_zshipto_email,
                       <fs_del>   LIKE LINE OF gt_del_entries,
                       <fs_mod>   LIKE LINE OF gt_modified_entries.
        DATA: wa_mailtxt LIKE LINE OF gt_mailtxt,
              wa_mailrec LIKE LINE OF gt_mailrec.
        IMPORT gt_modified_entries = gt_modified_entries
                                     FROM MEMORY ID 'MOD'.
        IMPORT gt_del_entries = gt_del_entries FROM MEMORY ID 'DEL'.
        SELECT * FROM zshipto_email INTO TABLE gt_zshipto_email
         WHERE zevent = '2'.
        IF sy-dbcnt > 0.
    */    routine for records that were deleted
          IF NOT gt_del_entries[] IS INITIAL.
            t_maildata-obj_name  = 'Record Deleted in table ZTS0001'.
            t_maildata-obj_descr = 'Record Deleted in table ZTS0001'.
            t_maildata-obj_langu = sy-langu.
            CLEAR: v_flag, v_counter.
            LOOP AT gt_zshipto_email ASSIGNING <fs_email>.
              LOOP AT gt_del_entries ASSIGNING <fs_del>.
    *           get name of dealer
                SELECT SINGLE name1 FROM kna1
                INTO <fs_del>-name1
                WHERE kunnr = <fs_del>-kunnr.
                IF v_counter IS INITIAL.
                 CONCATENATE: 'FYI: The ff record/s were deleted in tables'
                               'ZTS0001 and ZTS_STPGEOLOC by user' sy-uname
                                                          INTO v_contents
                                                         SEPARATED BY space.
                  wa_mailtxt-line =  v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                ENDIF.
                APPEND wa_mailtxt TO gt_mailtxt. "Extra space for message
                CONCATENATE: 'Dealer :' <fs_del>-kunnr '-'
                             <fs_del>-name1
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                CONCATENATE: 'Ship-To:' <fs_del>-cdseq
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                CONCATENATE: 'Address:' <fs_del>-zaddress
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                CONCATENATE: 'Contact person:' <fs_del>-zcperson
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                CONCATENATE: 'Contact number:' <fs_del>-zcnumber
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                v_counter = 1.
              ENDLOOP.
              wa_mailrec-receiver = <fs_email>-zemail.
              wa_mailrec-rec_type  = 'U'.
              APPEND wa_mailrec TO gt_mailrec.
              CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
                   EXPORTING
                        document_data              = t_maildata
                        document_type              = 'RAW'
                        put_in_outbox              = 'X'
    *                  commit_work                = 'X'
                   TABLES
    *                  object_header              = mailtxt
                        object_content             = gt_mailtxt
                        receivers                  = gt_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.
              CLEAR:    wa_mailtxt, wa_mailrec.
              REFRESH:  gt_mailtxt, gt_mailrec.
            ENDLOOP.
          ENDIF.
          CLEAR wa_mailtxt.
          REFRESH gt_mailtxt.
    */    routine for records that were modified
          IF NOT gt_modified_entries[] IS INITIAL.
            CLEAR t_maildata.
            t_maildata-obj_name  = 'Record changed in table ZTS0001'.
            t_maildata-obj_descr = 'Record changed in table ZTS0001'.
            t_maildata-obj_langu = sy-langu.
            CLEAR v_counter.
            LOOP AT gt_zshipto_email ASSIGNING <fs_email>.
              CONCATENATE: 'FYI: The ff records were changed in tables'
                           'ZTS0001 and ZTS_STPGEOLOC by user' sy-uname
                           INTO v_contents
                           SEPARATED BY space.
              wa_mailtxt-line =  v_contents.
              APPEND wa_mailtxt TO gt_mailtxt.
              CLEAR: wa_mailtxt, v_contents.
              LOOP AT gt_modified_entries ASSIGNING <fs_mod>.
    *          get name of dealer
                SELECT SINGLE name1 FROM kna1
                INTO <fs_mod>-name1
                WHERE kunnr = <fs_mod>-kunnr.
                APPEND wa_mailtxt TO gt_mailtxt.
                CONCATENATE: 'Dealer :' <fs_mod>-kunnr '-'
                             <fs_mod>-name1
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
                CONCATENATE: 'Ship-To:' <fs_mod>-cdseq
                             INTO v_contents
                             SEPARATED BY space.
                wa_mailtxt-line = v_contents.
                APPEND wa_mailtxt TO gt_mailtxt.
                CLEAR: wa_mailtxt, v_contents.
    *           address
                IF NOT <fs_mod>-old_address IS INITIAL AND
                   NOT <fs_mod>-new_address IS INITIAL.
                  CONCATENATE: 'Address from:' <fs_mod>-old_address
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                  CONCATENATE: 'Address to  :' <fs_mod>-new_address
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                ENDIF.
    *           person
                IF NOT <fs_mod>-old_person IS INITIAL AND
                       NOT <fs_mod>-new_person IS INITIAL.
                  CONCATENATE: 'Contact person from:'
                               <fs_mod>-old_person
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                  CONCATENATE: 'Contact person to  :'
                               <fs_mod>-new_person
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                ENDIF.
    *           number
                IF NOT <fs_mod>-old_number IS INITIAL AND
                       NOT <fs_mod>-new_number IS INITIAL.
                  CONCATENATE: 'Contact number from:'
                               <fs_mod>-old_number
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                  CONCATENATE: 'Contact number to  :'
                               <fs_mod>-new_number
                               INTO v_contents
                               SEPARATED BY space.
                  wa_mailtxt-line = v_contents.
                  APPEND wa_mailtxt TO gt_mailtxt.
                  CLEAR: wa_mailtxt, v_contents.
                ENDIF.
              ENDLOOP.
              wa_mailrec-receiver = <fs_email>-zemail.
              wa_mailrec-rec_type  = 'U'.
              APPEND wa_mailrec TO gt_mailrec.
              CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
                   EXPORTING
                        document_data              = t_maildata
                        document_type              = 'RAW'
                        put_in_outbox              = 'X'
    *                  commit_work                = 'X'
                   TABLES
    *                  object_header              = mailtxt
                        object_content             = gt_mailtxt
                        receivers                  = gt_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.
              CLEAR:    wa_mailtxt, wa_mailrec.
              REFRESH:  gt_mailtxt, gt_mailrec.
            ENDLOOP.
          ENDIF.
        ENDIF.
        FREE MEMORY ID 'AVH'.
        FREE MEMORY ID 'DEL'.
        FREE MEMORY ID 'MOD'.
      ENDMETHOD.
    ENDCLASS.
    START-OF-SELECTION.
    *       FORM get_orig_contents_of_zts0001                             *
    */ before saving the data in the database
    FORM get_orig_contents_of_zts0001.
      DATA: get_old_recs TYPE REF TO lcl_get_old_recs.
      CREATE OBJECT get_old_recs.
      CALL METHOD get_old_recs->export_old_recs.
    ENDFORM.
    *       FORM get_rev_contents_of_zts0001                              *
    */ after saving the data in the database
    FORM get_rev_contents_of_zts0001.
      DATA: old_and_new   TYPE REF TO lcl_old_and_new,
            check_changes TYPE REF TO lcl_check_changes,
            messages      TYPE REF TO lcl_messages.
      CREATE OBJECT: old_and_new, check_changes, messages.
      CALL METHOD old_and_new->compare_old_and_new.
      CALL METHOD check_changes->check_for_changes.
      CALL METHOD messages->create_message.
    ENDFORM.
    *       FORM move_latest_date_and_user                                *
    FORM move_latest_date_and_user.
      zts0001-zcreated_by   = sy-uname.
      zts0001-zchanged_date = sy-datum.
    ENDFORM.
    Hope it helps...
    P.S. Please award points if it helps...

  • Function modules to send mails from ABAP

    hi
               can any one give me the function module to send mails from abap to yahoomail or gmail etc. i will be grateful if any one can provide me a sample code.
    thanks & regards
    rajesh

    Hi,
    check this site:
    http://www.sapdevelopment.co.uk/reporting/email/email_mbody.htm
    Replace the
    p_email(40)   type c default '[email protected]' .
    with ur yahoo or gmail id
    This is the FM that u needed:
    'SO_NEW_DOCUMENT_ATT_SEND_API1'
    http://www.kabai.com/abaps/z00.htm
    http://www.sapdevelopment.co.uk/reporting/email/emailhome.htm
    /people/thomas.jung3/blog/2004/09/08/sending-e-mail-from-abap--version-610-and-higher--bcs-interface
    /people/thomas.jung3/blog/2004/09/07/sending-e-mail-from-abap--version-46d-and-lower--api-interface
    Hope this solves your question.
    Best Regards,
    Anjali

  • Uncaught Exception occured while sending mail through abap code.

    Hi,
    Uncaught Exception occured while sending mail through abap code.Run time Errors "UNCAUGHT_EXCEPTION" occured after excuting the call method  CALL METHOD SEND_REQUEST->SEND( ).kindly help in resolving the issue.

    HI,
    Runtime Error:  UNCAUGHT_EXCEPTION details.
    Runtime Errors         UNCAUGHT_EXCEPTION
    Exception              CX_ADDRESS_BCS
    Short text
         An exception occurred that was not caught.
    What happened?
         The exception 'CX_ADDRESS_BCS' was raised, but it was not caught anywhere along
         the call hierarchy.
         Since exceptions represent error situations and this error was not
         adequately responded to, the running ABAP program 'SAPLZSEND_MAIL' has to be
         terminated.
    Error analysis
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_ADDRESS_BCS', was not caught in
        procedure "SEND_MAIL" "(FORM)", nor was it propagated by a RAISING clause.
        Since the caller of the procedure could not have anticipated that the
        exception would occur, the current program is terminated.
        The reason for the exception is:
        An exception occurred
    How to correct the error
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "UNCAUGHT_EXCEPTION" "CX_ADDRESS_BCS"
        "SAPLZSEND_MAIL" or "LZSEND_MAILU01"
        "ZSEND_EMAIL"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
        (Unconverted)".
        3. If the problem occurs in a problem of your own or a modified SAP
        program: The source code of the program
           In the editor, choose "Utilities->More
        Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.
    The exception must either be prevented, caught within proedure
    "SEND_MAIL" "(FORM)", or its possible occurrence must be declared in the
    RAISING clause of the procedure.
    Please help me to resolve this issue.

  • Send mail from abap from internal mail id

    Hiiii,
              Is it possible to send mail from internal mail id  by using abap program ?

    Hi,
    I did't get your question, do you want to send mail using ABAP coding. If thats what is your requirement
    check out with link:
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/multiple%252battachment%252bon%252be_mail
    Tks,
    Krishna..

  • Sending mail thru ABAP pgm

    Hi experts,
    Can any body tell me what settings need to be done in SAP System while sending an email thru an ABAP pgm.
    Regards

    HI,
    *& Report  ZLAXMI_ALVMAIL2                                             *
    REPORT  ZLAXMI_ALVMAIL2   MESSAGE-ID ZZ       .
    TABLES: MARA, MAKT.
    DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    *DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
    DATA: DOC_CHNG LIKE SODOCCHGI1.
    DATA: TAB_LINES LIKE SY-TABIX.
    *creation of document to be sent.
    DOC_CHNG-OBJ_NAME = 'Mailing List'.
    DOC_CHNG-OBJ_DESCR = 'Materials report'.
    *type declarations
    *To store material data
    TYPES: BEGIN OF T_MARA,
            MATNR TYPE MARA-MATNR,
            PSTAT TYPE MARA-PSTAT,
            MTART TYPE MARA-MTART,
            MBRSH TYPE MARA-MBRSH,
            MEINS TYPE MARA-MEINS,
          END OF T_MARA.
    *--To store Material Description
    TYPES: BEGIN OF T_MAKT,
             MATNR TYPE MAKT-MATNR,            " Material Number
             MAKTX TYPE MAKT-MAKTX,            " Material Description
           END OF T_MAKT.
    TYPES: BEGIN OF T_FINAL,
            MATNR TYPE MARA-MATNR,
            MAKTX TYPE MAKT-MAKTX,
            PSTAT TYPE MARA-PSTAT,
            MTART TYPE MARA-MTART,
            MBRSH TYPE MARA-MBRSH,
            MEINS TYPE MARA-MEINS,
           END OF T_FINAL.
    *Internal table declarations.
    *--Internal Table to store Material Description
    DATA: IT_MAKT TYPE STANDARD TABLE OF T_MAKT,
    *--Internal Table to store Material details
          IT_MARA TYPE STANDARD TABLE OF T_MARA,
          IT_OBJTXT TYPE STANDARD TABLE OF SOLISTI1 ,    "object text
          IT_OBJPACK TYPE STANDARD TABLE OF SOPCKLSTI1 ,
                                                   " attachment table
          IT_OBJBIN TYPE STANDARD TABLE OF SOLISTI1  ,
                                                   " binary table
          IT_OBJHEAD TYPE STANDARD TABLE OF SOLISTI1  ,
                                                   " object header table
    *--Internal Table to hold Final records to download/display
          IT_FINAL TYPE STANDARD TABLE OF T_FINAL.
    DATA: IT_RECLIST TYPE STANDARD TABLE OF SOMLRECI1. "Workarea for internal table
    DATA:  X_MAKT  TYPE T_MAKT,         "Work area for IT_MAKT
           X_MARA  TYPE T_MARA,         "Work area for IT_MARA
           X_FINAL TYPE T_FINAL,       "Work area for IT_FINAL
           V_TEXT(255) TYPE C.
    *--Work area for all the internal tables used
    DATA :    WA_OBJPACK TYPE SOPCKLSTI1,
              WA_OBJHEAD TYPE SOLISTI1  ,
              WA_OBJBIN TYPE SOLISTI1   ,
              WA_OBJTXT TYPE SOLISTI1   ,
              WA_RECLIST TYPE SOMLRECI1 .
    CONSTANTS: C_TAB  TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
    *selection screen.
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
    SELECTION-SCREEN: END OF BLOCK B1.
    *at selection screen.
    *AT SELECTION-SCREEN.
    PERFORM VALIDATE_SCREEN.
    *start of selection.
    START-OF-SELECTION.
      PERFORM GET_MARA_DETAILS.
      PERFORM GET_MAKT_DETAILS.
      PERFORM FINAL_DATA.
    *end of selection
    END-OF-SELECTION.
      PERFORM SEND_MAIL_DATA.
      PERFORM DISPLAY_DATA.
    *&      Form  validate_screen
          text
    -->  p1        text
    <--  p2        text
    *FORM VALIDATE_SCREEN .
    DATA: LV_MATNR TYPE MARA-MATNR.
    IF NOT S_MATNR[] IS INITIAL.
       SELECT MATNR INTO
             LV_MATNR
             UP TO 1 ROWS
             FROM MARA
             WHERE MATNR IN S_MATNR.
       ENDSELECT.
    ENDIF.
    IF SY-SUBRC <> 0.
       MESSAGE E000 WITH 'Invalid material'.
    ENDIF.
    *ENDFORM.                    " validate_screen
    *&      Form  get_mara_details
          text
    -->  p1        text
    <--  p2        text
    FORM GET_MARA_DETAILS .
      SELECT MATNR
             PSTAT
             MTART
             MBRSH
             MEINS
             INTO TABLE IT_MARA
             FROM
             MARA WHERE
              MATNR IN S_MATNR.
      IF SY-SUBRC <> 0.
        MESSAGE I000 WITH 'No doc found'.
      ENDIF.
      SORT IT_MARA BY MATNR.
      DELETE ADJACENT DUPLICATES FROM IT_MARA COMPARING MATNR.
    ENDFORM.                    " get_mara_details
    *&      Form  get_makt_details
          text
    -->  p1        text
    <--  p2        text
    FORM GET_MAKT_DETAILS .
      SELECT MATNR
             MAKTX
           FROM MAKT
           INTO TABLE IT_MAKT
           FOR ALL ENTRIES IN IT_MARA
           WHERE MATNR = IT_MARA-MATNR AND
                 SPRAS = SY-LANGU.
    ENDFORM.                    " get_makt_details
    *&      Form  final_data
          text
    -->  p1        text
    <--  p2        text
    FORM FINAL_DATA .
      LOOP AT IT_MARA INTO X_MARA.
        CLEAR X_FINAL.
        READ TABLE IT_MAKT INTO X_MAKT WITH KEY MATNR = X_MARA-MATNR.
        IF SY-SUBRC = 0.
          X_FINAL-MAKTX = X_MAKT-MAKTX.
        ENDIF.
        X_FINAL-MATNR = X_MARA-MATNR.
        X_FINAL-PSTAT = X_MARA-PSTAT.
        X_FINAL-MTART = X_MARA-MTART.
        X_FINAL-MBRSH = X_MARA-MBRSH.
        X_FINAL-MEINS = X_MARA-MEINS.
        APPEND X_FINAL TO IT_FINAL.
      ENDLOOP.
    ENDFORM.                    " final_data
    *&      Form  send_mail_data
          text
    -->  p1        text
    <--  p2        text
    FORM SEND_MAIL_DATA .
      WA_RECLIST-REC_TYPE = 'B'.
      WA_RECLIST-EXPRESS  = 'X'.
      WA_RECLIST-RECEIVER = 'DEV02'.
      APPEND WA_RECLIST TO IT_RECLIST.
      CONCATENATE 'MATERIAL DATA'(021)
                 SY-DATUM INTO DOC_CHNG-OBJ_DESCR SEPARATED BY SPACE.
    *--Mail body
      CONCATENATE 'MATERIAL DESCRIPTION'(022) 'ATTACHMENT' INTO WA_OBJTXT SEPARATED BY SPACE.
      APPEND WA_OBJTXT TO IT_OBJTXT.
      DESCRIBE TABLE IT_OBJTXT LINES TAB_LINES.
      READ TABLE IT_OBJTXT INTO WA_OBJTXT INDEX TAB_LINES .
      DOC_CHNG-DOC_SIZE =
                     ( TAB_LINES - 1 ) * 255 + STRLEN( WA_OBJTXT ).
    *-populate packing list for body text
      WA_OBJPACK-HEAD_START = 1.
      WA_OBJPACK-HEAD_NUM = 0.
      WA_OBJPACK-BODY_START = 1.
      WA_OBJPACK-BODY_NUM = TAB_LINES.
      WA_OBJPACK-DOC_TYPE = 'RAW'.
      APPEND WA_OBJPACK TO IT_OBJPACK.
      CLEAR WA_OBJPACK.
    *--for attachment
    *--Populate Column headings
      CONCATENATE TEXT-040   " Material Number
                  TEXT-041   " Material Description
                  TEXT-042   " Maintenence status
                  TEXT-043   " Material type
                  TEXT-044   " Industry sector
                  TEXT-045   " Base unit of measure
                  INTO V_TEXT SEPARATED BY C_TAB.
    CONCATENATE V_TEXT
                 C_CR_LF
                 INTO V_TEXT.
      WA_OBJBIN = V_TEXT.
      APPEND WA_OBJBIN TO IT_OBJBIN.
      CLEAR  WA_OBJBIN.
    *--Populate Data to the attachment
      LOOP AT IT_FINAL INTO X_FINAL.
        CONCATENATE X_FINAL-MATNR
                    X_FINAL-MAKTX
                    X_FINAL-PSTAT
                    X_FINAL-MTART
                    X_FINAL-MBRSH
                    X_FINAL-MEINS
                   INTO V_TEXT SEPARATED BY C_TAB.
    *--Go to next line after this record.
       CONCATENATE V_TEXT
                   C_CR_LF
                   INTO V_TEXT.
        WA_OBJBIN = V_TEXT.
        APPEND WA_OBJBIN TO IT_OBJBIN.
        CLEAR  WA_OBJBIN.
      ENDLOOP.
    CLEAR : TAB_LINES.
      DESCRIBE TABLE IT_OBJBIN LINES TAB_LINES.
    *1ST ATTACHMENT :  MAT 5000 PLANT
    *2ND ATT        : MAT 5010 PLANTS
      SORT IT_FINAL BY MEINS.
      DATA : V_BEGIN TYPE SY-TABIX,
             V_END   TYPE SY-TABIX.
      LOOP AT IT_FINAL INTO X_FINAL.
        AT END OF MEINS.
          IF V_BEGIN IS INITIAL.
            V_BEGIN = 1.
          ELSE.
            V_BEGIN = V_END + 1.
          ENDIF.
          V_END = SY-TABIX.
          WA_OBJPACK-TRANSF_BIN = 'X'.
          WA_OBJPACK-HEAD_START = 1.
          WA_OBJPACK-HEAD_NUM = 1.
          WA_OBJPACK-BODY_START = V_BEGIN.
          WA_OBJPACK-BODY_NUM = V_END.
          WA_OBJPACK-DOC_TYPE = 'RAW' .
          WA_OBJPACK-OBJ_NAME = 'MATERIAL'.
          WA_OBJPACK-OBJ_DESCR = 'attachment'.
          WA_OBJPACK-DOC_SIZE = TAB_LINES * 255.
          APPEND WA_OBJPACK TO IT_OBJPACK.
        ENDAT.
      ENDLOOP.
    *-populate object header(attachment name)
      WA_OBJHEAD = 'MATERIAL DETAILS'.
      APPEND WA_OBJHEAD TO IT_OBJHEAD.
      CLEAR  WA_OBJHEAD.
    *-packing list for attachment
      WA_OBJPACK-TRANSF_BIN = 'X'.
      WA_OBJPACK-HEAD_START = 1.
      WA_OBJPACK-HEAD_NUM = 1.
      WA_OBJPACK-BODY_START = 1.
      WA_OBJPACK-BODY_NUM = TAB_LINES .
      WA_OBJPACK-DOC_TYPE = 'RAW' .
      WA_OBJPACK-OBJ_NAME = 'MATERIAL'.
      WA_OBJPACK-OBJ_DESCR = 'ATTACHMENT DESCRIPTION'.
      WA_OBJPACK-DOC_SIZE = TAB_LINES * 255.
      APPEND WA_OBJPACK TO IT_OBJPACK.
      CLEAR  WA_OBJPACK.
    *-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               = IT_OBJPACK
          OBJECT_HEADER              = IT_OBJHEAD
          CONTENTS_BIN               = IT_OBJBIN
          CONTENTS_TXT               = IT_OBJTXT
          RECEIVERS                  = IT_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.
      IF SY-SUBRC <> 0.
        MESSAGE E000 WITH 'Error occurred in sending mail'(039).
      ELSE.
        MESSAGE I000 WITH 'Mail sent'(010).
      ENDIF.
    ENDFORM.                    " send_mail_data
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_DATA .
      WRITE :/ SY-ULINE.
      WRITE:/1 SY-VLINE,
              2 'Material No'(024),
             19 SY-VLINE,
             20 'Material Description'(025),
             61 SY-VLINE,
             62 'Maintainence Status'(026),
             71 SY-VLINE,
             72 'Material type'(027),
             89 SY-VLINE,
             90 'Industry sector'(028),
             107 SY-VLINE,
             108 'Base unit of measure'(029),
             125 SY-VLINE.
      WRITE:/1 SY-VLINE,
             19 SY-VLINE,
             61 SY-VLINE,
             71 SY-VLINE,
             89 SY-VLINE,
             107 SY-VLINE,
             125 SY-VLINE.
      WRITE :/ SY-ULINE.
    ENDFORM.                    " DISPLAY_DATA
    Regards,
    Laxmi.

  • Sending mails without using sendmail service. Is that possible?

    Hi all,
    I am considerably new to Solaris.
    I have a query,
    Is it possible to send mails out without using sendmail service?
    If so how can they be implemented in,
    Solaris 7?
    Solaris 8?
    Solaris 9?
    If it is not possible, are there any workarounds to achieve this or else this cannot be implemented at all?
    It would be really great if someone could shed light on this query.

    Your question is a little ambiguous. However, I will try to answer it.
    You need to use a program to send the email for you. On Solaris by default this is sendmail. However, it can be used in a number of modes.
    1. It can be run as a daemon, listening on port 25 for new messages to be delivered to it.
    This is enabled by default but is not necessary for sending email. If you wish to switch sendmail off as a service in Solaris10 then you should type 'svcadm disable svc:/network/smtp:sendmail'. If you wish to switch it off on earlier Solaris releases you will need to move/erase the startup script in either /etc/rc2.d or /etc/rc3.d.
    2. It can be run in 'immediate mode' to send mail immediately.
    This allows you to send a mail directly to someone. On a normally configured sendmail instance it will try to deliver the mail immediately - if the server at the other end is unavailable, the mail will be queued locally to be potentially delivered at a later date.
    3. It can run in delivery only mode to attempt to send queued mail
    Queued mail will not automatically get processed. Sendmail needs to run at a later date to attempt to deliver any queued mail. This can either be done via cron using 'sendmail -q' or sendmail can be left running the whole time and told to rerun the queue in given periods ie 'sendmail -q15m'
    There are alternatives to sendmail for delivering mail - postfix, exim, qmail are just three examples. I would advise against trying to deliver mail without using a specific mail agent to do it. Whilst the SMTP mail protocol is pretty simple in basic use cases the protocol does get complex. There is no real downside in using an established program.
    HTH.

  • How to send mail from ABAP code?

    Hi,
    I need to send e-mail from ABAP Code .
    e.g:  If sy-subrc ne 0.
         ( send e-mail to  "[email protected]" )
           endif.
    Please provide me any Function module for this or any code.
    Correct answear will be rewarded my maximum points.
    Thanks & Regards,
    Gaurav.

    Check this code sample
    * Send mail
      maildata-obj_name = 'TEST'.
      maildata-obj_descr = 'Test Subject'.
      loop at htmllines.
        mailtxt = htmllines.
        append mailtxt.
      endloop.
      mailrec-receiver = '[email protected]'.
      mailrec-rec_type  = 'U'.
      append mailrec.
      call function 'SO_NEW_DOCUMENT_SEND_API1'
           exporting
                document_data              = maildata
                document_type              = 'HTM'
                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.
    Regards.

  • Send mail from ABAP

    Hi all,
    do you know if i can send email from ABAP, i specify that i don't have WAS. I understand that i must install SAPConnect and SMTP plug-in but in my case will that function ? 
    Regards,

    Hi
    See following  routine it will send you data as attachment.
    FORM send_mail.
      it_doc_chng-obj_name  = text-016.
      it_doc_chng-obj_descr = text-016.
      DESCRIBE TABLE it_objtxt LINES g_lines.
      READ TABLE it_objtxt INDEX g_lines.
      it_objpack-doc_size = ( g_lines - 1 ) * 255 + STRLEN( it_objtxt ).
      it_objpack-doc_type   = 'RAW'.
      APPEND it_objpack.
      it_objpack-head_start = 1.
      it_objpack-head_num   = 0.
      it_objpack-body_start = 1.
      it_objpack-transf_bin = 'X'.
      it_objpack-body_num   = g_lines.
      it_objpack-doc_type   = 'RAW'.
      it_objpack-obj_name   = 'ATTACHMENT'.
      it_objpack-obj_descr  = g_file.
      APPEND it_objpack.
    completing the recipient list
      SORT it_vmail.
      DELETE ADJACENT DUPLICATES FROM it_vmail.
      IF l_client NE 'P'.
        it_reclist-receiver = p_email.
        it_reclist-express =  'X'.
        it_reclist-rec_type = 'U'.
        APPEND it_reclist.
      ELSE.
        LOOP AT it_vmail.
          it_reclist-receiver = it_vmail-smtp_addr.
          it_reclist-express =  'X'.
          it_reclist-rec_type = 'U'.
          APPEND it_reclist.
        ENDLOOP.
      ENDIF.
      it_rec_mail[] = it_reclist[].
      IF NOT p_copy IS INITIAL.
        it_reclist-receiver = p_copy.
        it_reclist-express =  'X'.
        it_reclist-copy =  'X'.
        it_reclist-rec_type = 'U'.
        APPEND it_reclist.
      ENDIF.
      CLEAR it_download[].
      it_download[] = it_objtxt[].
    **********Sending the mail with attachment*****************
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_MAPI'
        EXPORTING
          document_data              = it_doc_chng
          put_in_outbox              = 'X'
          commit_work                = 'X'
        TABLES
          packing_list               = it_objpack
          contents_bin               = it_objtxt
          contents_txt               = it_objtxt
          receivers                  = it_reclist
        EXCEPTIONS
          too_many_receivers         = 1
          document_not_sent          = 2
          operation_no_authorization = 4
          OTHERS                     = 99.
      CASE sy-subrc.
        WHEN 0.
          IF p_update = 'X'.
            PERFORM reference_update.
          ENDIF.
         PERFORM down_load.
          WRITE:/01 text-019.
          SKIP.
          LOOP AT it_rec_mail.
            FORMAT COLOR 5 INTENSIFIED OFF.
            WRITE:/01 text-010,20 it_rec_mail-receiver.
          ENDLOOP.
          ULINE.
        WHEN 1.
          WRITE: / text-012.
        WHEN 2.
          WRITE: / text-013.
        WHEN 4.
          WRITE: / text-014.
        WHEN OTHERS.
          WRITE: / text-015.
      ENDCASE.
      REFRESH:it_objpack,
              it_objtxt,
              it_reclist,
              it_rec_mail.
      CLEAR:it_objpack,
            it_objtxt,
            it_reclist,
            g_lines,
            it_rec_mail.
    ENDFORM.                    " send_mail
    Regards
    Suresh Babu Karanam

  • Using FM "SO_DOCUMENT_SEND_API1"  to send mail without attachment

    Hi,
    What are the parameters to be passed and their values
    to send a mail using SO_DOCUMENT_SEND_API1
    EXPORT PARAMETERS :
           document_data              = ?
          sender_address             = sy-userid
          sender_address_type        = 'INT'
          commit_work                = 'X'
        TABLES :
          packing_list               =  ?
          contents_bin               =  ?
    The content of the mail is not being displayed in the mail.
    Thanks in advance.
    Regards,Harika

    Hi Harika,
    Check below piece of code.
    *&      Form  mail_body
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM mail_body.
      DATA:  l_l1 TYPE i.
      CONSTANTS: lc_0 VALUE '0',
                 lc_1 VALUE '1',
                 lc_raw(3) TYPE c VALUE 'RAW'.
      REFRESH: i_objtxt[],
               i_objpack[].
      CLEAR: wa_objtxt.
      SORT i_fail BY type.
    * MAIL BODY
    * Customer Number
      CONCATENATE text-t18
                  w_kunnr
                  INTO wa_objtxt
                  SEPARATED BY space.
      APPEND wa_objtxt TO i_objtxt.
      CLEAR wa_objtxt.                        "blank line
      APPEND wa_objtxt TO i_objtxt.
    *  Complete Payment Doc Nos
      READ TABLE i_fail WITH KEY type = c_comp
                        TRANSPORTING NO FIELDS
                        BINARY SEARCH.
      IF sy-subrc EQ 0.
        wa_objtxt = text-t16.
        APPEND wa_objtxt TO i_objtxt.
        CLEAR: wa_fail, wa_objtxt.
        APPEND wa_objtxt TO i_objtxt.
        MOVE: text-t23   TO wa_objtxt,
              text-t24   TO wa_objtxt+17(5),
              text-t25   TO wa_objtxt+22(6),
              text-t26   TO wa_objtxt+40(18).
        APPEND wa_objtxt TO i_objtxt.
        CLEAR wa_objtxt.
        LOOP AT i_fail INTO wa_fail WHERE type EQ c_comp.
          DIVIDE wa_fail-disper BY 100.
          MOVE: wa_fail-belnr   TO wa_objtxt,
                wa_fail-buzei   TO wa_objtxt+17(5),
                wa_fail-wrbtr   TO wa_objtxt+22(16),
                wa_fail-disper  TO wa_objtxt+40(18).
          APPEND wa_objtxt TO i_objtxt.
          CLEAR: wa_fail, wa_objtxt.
        ENDLOOP.
      ENDIF.
    *  Partial Payment Doc Nos
      READ TABLE i_fail WITH KEY type = c_part
                        TRANSPORTING NO FIELDS
                        BINARY SEARCH.
      IF sy-subrc EQ 0.
        wa_objtxt = text-t17.
        APPEND wa_objtxt TO i_objtxt.
        CLEAR wa_fail.
        CLEAR: wa_objtxt.
        APPEND wa_objtxt TO i_objtxt.
        MOVE: text-t23   TO wa_objtxt,
              text-t24   TO wa_objtxt+17(5),
              text-t25   TO wa_objtxt+22(6),
              text-t26   TO wa_objtxt+40(18).
        APPEND wa_objtxt TO i_objtxt.
        CLEAR wa_objtxt.
        LOOP AT i_fail INTO wa_fail WHERE type EQ c_part.
          DIVIDE wa_fail-disper BY 100.
          MOVE: wa_fail-belnr   TO wa_objtxt,
                wa_fail-buzei   TO wa_objtxt+17(5),
                wa_fail-wrbtr   TO wa_objtxt+22(16),
                wa_fail-disper  TO wa_objtxt+40(18).
          APPEND wa_objtxt TO i_objtxt.
          CLEAR: wa_fail, wa_objtxt.
        ENDLOOP.
      ENDIF.
    * MAIL BODY-LENGTH
      DESCRIBE TABLE i_objtxt LINES l_l1.
      CLEAR wa_objpack-transf_bin.
      wa_objpack-head_start = lc_1.
      wa_objpack-head_num = lc_0.
      wa_objpack-body_start = lc_1.
      wa_objpack-body_num = l_l1.
      wa_objpack-doc_type = lc_raw.
      APPEND wa_objpack TO i_objpack.
    *SUBJECT
      CLEAR wa_doc_chng.
      wa_doc_chng-obj_name  = text-t15.
      wa_doc_chng-obj_descr = text-t15.
    ENDFORM.                    " mail_body
    *&      Form  send_mail
    *       text
    FORM send_mail.
      CONSTANTS: lc_c       TYPE so_escape VALUE 'C',
                 lc_mode(3) TYPE c         VALUE 'INT'.
      CLEAR: wa_reclist, i_reclist[].
    *Recipient list
      wa_reclist-receiver = text-t14.       "DL
      wa_reclist-rec_type = lc_c.
      APPEND wa_reclist TO i_reclist.
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          EXPORTING
            document_data                    = wa_doc_chng
            put_in_outbox                    = c_x
    *     IMPORTING
    *       SENT_TO_ALL                      =
    *       NEW_OBJECT_ID                    =
          TABLES
            packing_list                     = i_objpack
    *       OBJECT_HEADER                    =
    *       CONTENTS_BIN                     =
            contents_txt                     = i_objtxt
    *       CONTENTS_HEX                     =
    *       OBJECT_PARA                      =
    *       OBJECT_PARB                      =
            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.
    *    IF SY-SUBRC <> 0.
    *    ENDIF.
      IF sy-subrc IS INITIAL.
    *Send mail immediately
        SUBMIT rsconn01 USING SELECTION-SET lc_mode AND RETURN.
        CALL FUNCTION 'SO_DEQUEUE_UPDATE_LOCKS'.
      ELSE.
        RAISE mail_not_sent.
      ENDIF.
    ENDFORM.                    " send_mail
    Thanks,
    Vinod.

  • File To Proxy : Handle the response from ECC to send mail without BPM

    Hi,
    Scenario: FILE To Proxy
    Requirement: We are receiving xml acknowledgement file from bank with IDoc number and status in SAP PI and the file is used to send the status number, message and and IDoc number to ECC. After request is received in ECC BAPI is executed to update the original status of outbound IDOC.
    There would be multiple records in file and PI will send all IDoc acknowledgement to ECC to update the IDoc status.
    Issue: Since PI send all records to ecc, if any single IDoc status update is failing in ECC how would it can be communicated to support.
    ECC can send success or error response in proxy but how we can use the same in PI to send mail to support. Or is there any better error handling we can go for in such scenario.
    Thanks,
    Vertika

    Hi everyone
    thanks for response.
    Interface 1: IDoc (ECC) to File (Bank) --> Done
    Interface 2: Acknowledgment File (Bank) to BAPI (ECC) where BAPI will update the status of IDoc sent in first interface.
    For Interface 2 : PI will receive file from Bank with multiple records i.e multiple IDoc numbers and their status. PI will invoke proxy to send the IDoc number and status number (eg 16) for all the records together. Now if BAPI fails to update status of any single IDoc in that file how support team will know that the particular record is failed. To handle this error ECC is saying they can send Error and Success back to PI. But the problem is how we can use that response in PI in the same interface to send emails to support team. Bank does not want any response back in this case. This is just to ensure proper error handling since this is bank related interface.
    Splitting the interface in two interfaces will definitely help. But is there some way which can be used in same interface and based on error response from ECC mail is triggered.
    If any one has better suggestion for such kind of error handling, please post the same.
    Thanks,
    Vertika

  • Garbage in mail body when sending mail from abap code

    Hi abapers,
    i am sending mail from my program and when the data reaches in mailbox it is as follows.
    佐呓义⁇䅄䕔䌉乏啓䕍⁒低䌉乏啓䕍⁒䅎䕍䤉⁃䥔䭃⁔低म䍉吠䍉䕋⁔䕄䍓䤉⁃䥔䭃呅匠䅔啔॓
    which is not proper.
    I'm attaching the following part of code which i have used.Please let me know if i've made any mistake over here.
    DOCDATA-OBJ_LANGU = SY-LANGU.
      DOCDATA-OBJ_NAME = 'Mail_Excel_File'.
      DOCDATA-OBJ_DESCR = 'Closed Customer Complaints'.      
      DOCDATA-SENSITIVTY = 'F'.
      OBJTXT =
      'Attached compensation request is pending for your approval as on '.
      APPEND OBJTXT. CLEAR OBJTXT.
      OBJTXT =
      'today. Please find the attached Field Investigation Report.'.
      APPEND OBJTXT. CLEAR OBJTXT.
      OBJTXT =
      'This is auto generated mail.Please do not reply to this mail.'.
      APPEND OBJTXT. CLEAR OBJTXT.
      DESCRIBE TABLE OBJTXT LINES TAB_LINES.
      READ     TABLE OBJTXT INDEX TAB_LINES.
      DOCDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
    CLEAR OBJPACK-TRANSF_BIN.
      OBJPACK-TRANSF_BIN = 'X'.
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 0.
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'RAW'.
      APPEND OBJPACK.
      DESCRIBE TABLE I_CONTENTS_HEX LINES TAB_LINES.
    *  OBJPACK-DOC_SIZE = TAB_LINES * 255  + STRLEN( OBJTXT ).
      OBJPACK-DOC_SIZE = TAB_LINES * 255  .
      OBJPACK-TRANSF_BIN = 'X'.
    *  OBJPACK-TRANSF_BIN = SPACE.
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 1.
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'XLS'.
    * DOCDATA-OBJ_NAME = 'Excel_File_Attachment1'.
    *  OBJPACK-OBJ_DESCR = FILE_NAME.
      OBJPACK-OBJ_DESCR = P_FILE.
      APPEND OBJPACK.
      RECLIST-RECEIVER = RECIEVER.
      RECLIST-REC_TYPE = 'U'.
      RECLIST-EXPRESS = 'X'.
      APPEND RECLIST.
    * FM called for sending the mail to the intended recipients
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA = DOCDATA
          PUT_IN_OUTBOX = 'X'
          COMMIT_WORK   = 'X'
        TABLES
          PACKING_LIST  = OBJPACK
          CONTENTS_HEX  = I_CONTENTS_HEX
          CONTENTS_TXT  = OBJTXT
          RECEIVERS     = 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.
    what will be the problem..
    please help out.
    Regards,
    Navin
    Edited by: navin.c on Jul 10, 2009 8:08 AM

    Hi Krishna,
    I have attachment properly coming the problem is body of mail its is coming in some  unknown language
    佐呓义⁇䅄䕔䌉乏啓䕍⁒低䌉乏啓䕍⁒䅎䕍䤉⁃䥔䭃⁔低म䍉吠䍉䕋⁔䕄䍓䤉⁃䥔䭃呅匠䅔啔॓剐䑏䌠䵏⁐低म剐䌠䵏⁐呓呁单䌉䵏⹐删充低म䅌呓䌠䅈䝎䑅䄠॔剐䑏䍕⁔䕄䅔䱉॓䡓䑁⁅䅎䕍匉䅈䕄䌠䑏ॅ䅂䕓丠䵁ॅ䅂䕓䌠䑏ॅ䅂䍔⁈啎䉍剅䴉乁䙕䝃䐠呁ॅ䅓偍䕌䄠䅖䱉䉁䱉呉ख़䉏䕓噒
    what may be the problem?
    I have used the same logic . im attaching my part of code for your reference .
    DOCDATA-OBJ_LANGU = SY-LANGU.
      DOCDATA-OBJ_NAME = 'Mail_Excel_File'.
      DOCDATA-OBJ_DESCR = 'Closed Customer Complaints'.         "nsc070709+
      DOCDATA-SENSITIVTY = 'F'.
    * Describe the body of the message
    *********new additon of mail content
    * CONCATENATE  'Dear'  L_FIRSTNAME ','
    *  INTO OBJTXT SEPARATED BY SPACE.
    *  APPEND OBJTXT. CLEAR OBJTXT.
      OBJTXT =
      'Attached compensation request is pending for your approval as on '.
      APPEND OBJTXT. CLEAR OBJTXT.
      OBJTXT =
      'today. Please find the attached Field Investigation Report.'.
      APPEND OBJTXT. CLEAR OBJTXT.
      OBJTXT =
      'This is auto generated mail.Please do not reply to this mail.'.
      APPEND OBJTXT. CLEAR OBJTXT.
      DESCRIBE TABLE OBJTXT LINES TAB_LINES.
      READ     TABLE OBJTXT INDEX TAB_LINES.
      DOCDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
    *  OBJTXT = 'Attached is the FIR PENDING CASES'.
    *  APPEND OBJTXT.
    *  DESCRIBE TABLE OBJTXT LINES TAB_LINES.
      CLEAR OBJPACK-TRANSF_BIN.
      OBJPACK-TRANSF_BIN = 'X'.
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 0.
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'RAW'.
      APPEND OBJPACK.
      DESCRIBE TABLE I_CONTENTS_HEX LINES TAB_LINES.
    *  OBJPACK-DOC_SIZE = TAB_LINES * 255  + STRLEN( OBJTXT ).
      OBJPACK-DOC_SIZE = TAB_LINES * 255  .
      OBJPACK-TRANSF_BIN = 'X'.
    *  OBJPACK-TRANSF_BIN = SPACE.
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 1.
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'XLS'.
    * DOCDATA-OBJ_NAME = 'Excel_File_Attachment1'.
    *  OBJPACK-OBJ_DESCR = FILE_NAME.
      OBJPACK-OBJ_DESCR = P_FILE.
      APPEND OBJPACK.
      RECLIST-RECEIVER = RECIEVER.
      RECLIST-REC_TYPE = 'U'.
      RECLIST-EXPRESS = 'X'.
      APPEND RECLIST.
    * FM called for sending the mail to the intended recipients
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA              = DOCDATA
          PUT_IN_OUTBOX              = 'X'
          COMMIT_WORK                = 'X'
        TABLES
          PACKING_LIST               = OBJPACK
          CONTENTS_HEX               = I_CONTENTS_HEX
          CONTENTS_TXT               = OBJTXT
          RECEIVERS                  = 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.
      COMMIT WORK.
    Can anybody help me out on this issue.
    Its somewhat on priority.
    Edited by: navin.c on Jul 10, 2009 12:58 PM

  • TS3899 cannot send mail without restarting every time IPad is shut down (IPad air)All other mail functions work properly

    Cannot send mail withoout IPad restart after every IPad shutdown.  All other fuunctions of mail work properly.

    iOS: Unable to send or receive email
    http://support.apple.com/kb/TS3899
    Can’t Send Emails on iPad – Troubleshooting Steps
    http://ipadhelp.com/ipad-help/ipad-cant-send-emails-troubleshooting-steps/
    Setting up and troubleshooting Mail
    http://www.apple.com/support/ipad/assistant/mail/
    Using a POP account with multiple devices
    http://support.apple.com/kb/ht3228
    iOS: Adding an email account
    http://support.apple.com/kb/HT4810
    iOS: Setting up an Outlook.com, Hotmail, Live, or MSN email account
    http://support.apple.com/kb/ht1694
    iPhone, iPad, iPod touch: Microsoft Outlook 2003, Outlook 2007, Outlook 2010 may not display contacts and calendars after sync
    http://support.apple.com/kb/TS1944
    Server does not allow relaying email error, fix
    http://appletoolbox.com/2012/01/server-does-not-allow-relaying-email-error-fix/
    Why Does My iPad Say "Cannot Connect to Server"?
    http://www.ehow.co.uk/info_8693415_ipad-say-cannot-connect-server.html
    How to Delete Email on the iPad
    http://ipad.about.com/od/iPad_Guide/ss/How-To-Delete-Email-On-The-Ipad.htm
    How to Mass Delete Emails from iPhone and iPad Inbox (with video)
    http://suiteminute.com/how-to-mass-delete-emails-from-iphone-and-ipad-inbox/
    How to Sync Contacts with Your iPad Using iTunes
    http://www.dummies.com/how-to/content/how-to-sync-contacts-with-your-ipad-using- itunes.html
    iOS: 'Mailbox Locked', account is in use on another device, or prompt to re-enter POP3 password
    http://support.apple.com/kb/ts2621
    iCloud: Create a group and add contacts to it
    http://support.apple.com/kb/PH2667
    eMail Groups - You can use a third party app that many users recommend.
    MailShot -  https://itunes.apple.com/us/app/mailshot-pro-group-email-done/id445996226?mt=8
    Group Email  -  https://itunes.apple.com/us/app/mailshot-pro-group-email-done/id445996226?mt=8
    iPad Mail
    http://www.apple.com/support/ipad/mail/
    Configuration problems with IMAP e-mail on iOS with a non-standard SSL port.
    http://colinrobbins.me/2013/02/09/configuration-problems-with-imap-e-mail-on-ios -with-a-non-standard-ssl-port/
    Try this first - Reset the iPad by holding down on the Sleep and Home buttons at the same time for about 10-15 seconds until the Apple Logo appears - ignore the red slider - let go of the buttons. (This is equivalent to rebooting your computer.)
    Or this - Delete the account in Mail and then set it up again. Settings->Mail, Contacts, Calendars -> Accounts   Tap on the Account, then on the red button that says Remove Account.
     Cheers, Tom

  • How can send mail without authentication

    Hi all,
    I am trying to send mail on gmail using java mail API.
    It need to authenticate first, can anybody explain why it need to
    authenticate .
    Please Reply
    Thanks in advance.
    Amit

    http://java.sun.com/products/javamail/FAQ.html#smtpauth
    http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html
    Probably it will help.
    Ramki

  • How to Convert internal table data into text output and send mail in ABAP

    Hi All,
    Good Morning.
    Taking a glance at a code that converts internal table data to an Excel file in ABAP. also checked how to send this excel to mailing list as attachment.
    But thought of doing it without excel.
    I mean, I have an internal table which contains fields of all types (character,integer,date,time). Since it is only around 4 to 5 rows in it (output),why to convert it to excel. not required!!.  Instead I  want to send this output to User's mails as Normal mail body with No attachments.
    Could anybody please suggest me a way as to how to send internal table data as a mail ( not as an excel or PDF etc).
    as of now my findings are, it is quite complex to convert internal table data to email (Text) format. but i believe if there is some way of doing it.
    Best Regards
    Dileep VT

    here's something I have used in the past where we send out information about failed precalculation settings (which are stored in internal table gt_fail)
    notice we use gt_text as "mail body"
    TRY.
    *     -------- create persistent send request ------------------------
           gv_send_request = cl_bcs=>create_persistent( ).
    *     -------- create and set document -------------------------------
    *     create text to be sent
           wa_line = text-001.
           APPEND wa_line TO gt_text.
           CLEAR wa_line.
           APPEND wa_line TO gt_text.
           LOOP AT gt_fail ASSIGNING <fs_fail>.
             MOVE <fs_fail>-retry_count TO gv_count.
             CONCATENATE text-002
                         <fs_fail>-setting_id
                         text-003
                         gv_count
                         INTO wa_line SEPARATED BY space.
             APPEND wa_line TO gt_text.
             CLEAR wa_line.
           ENDLOOP.
           APPEND wa_line TO gt_text.
           wa_line = text-007.
           APPEND wa_line TO gt_text.
    *     create actual document
           gv_document = cl_document_bcs=>create_document(
                           i_type    = 'RAW'
                           i_text    = gt_text
                           i_length  = '12'
                           i_subject = 'Failed Precalculation Settings!' ).
    *     add document to send request
           CALL METHOD gv_send_request->set_document( gv_document ).
    *     --------- set sender -------------------------------------------
           gv_sender = cl_sapuser_bcs=>create( sy-uname ).
           CALL METHOD gv_send_request->set_sender
             EXPORTING
               i_sender = gv_sender.
    *     --------- add recipient (e-mail address) -----------------------
           LOOP AT s_email INTO wa_email.
             MOVE wa_email-low TO gv_email.
             gv_recipient = cl_cam_address_bcs=>create_internet_address(
                                               gv_email ).
             CALL METHOD gv_send_request->add_recipient
               EXPORTING
                 i_recipient = gv_recipient
                 i_express   = 'X'.
           ENDLOOP.
    *     ---------- set to send immediately -----------------------------
           CALL METHOD gv_send_request->set_send_immediately( 'X' ).
    *     ---------- send document ---------------------------------------
           CALL METHOD gv_send_request->send(
             EXPORTING
               i_with_error_screen = 'X'
             RECEIVING
               result              = gv_sent_to_all ).
           IF gv_sent_to_all = 'X'.
             WRITE text-004.
           ENDIF.
           COMMIT WORK.
    *   exception handling
         CATCH cx_bcs INTO gv_bcs_exception.
           WRITE: text-005.
           WRITE: text-006, gv_bcs_exception->error_type.
           EXIT.
       ENDTRY.
    with the following declarations
    * TABLES                                                               *
    TABLES:
       adr6,
       rsr_prec_sett.
    * INTERNAL TABLES & WORK AREAS                                         *
    DATA:
       gt_fail          TYPE SORTED TABLE OF rsr_prec_sett
                             WITH UNIQUE KEY setting_id run_date,
       gt_text          TYPE bcsy_text,
       wa_fail          LIKE LINE OF gt_fail,
       wa_line(90)      TYPE c.
    FIELD-SYMBOLS:
       <fs_fail>        LIKE LINE OF gt_fail.
    * VARIABLES                                                            *
    DATA:
       gv_count(4)      TYPE n,
       gv_send_request  TYPE REF TO cl_bcs,
       gv_document      TYPE REF TO cl_document_bcs,
       gv_sender        TYPE REF TO cl_sapuser_bcs,
       gv_recipient     TYPE REF TO if_recipient_bcs,
       gv_email         TYPE adr6-smtp_addr,
       gv_bcs_exception TYPE REF TO cx_bcs,
       gv_sent_to_all   TYPE os_boolean.
    * SELECTION-SCREEN                                                     *
    SELECT-OPTIONS:
       s_email          FOR adr6-smtp_addr NO INTERVALS MODIF ID sel.
    DATA:
       wa_email         LIKE LINE OF s_email.

Maybe you are looking for