Skip to Content
author's profile photo Former Member
Former Member

Send Email with Multiple Attachment

Hi,

How do you send an email with multiple attachment of different types thru SO_NEW_DOCUMENT_ATT_SEND_API1?

Please help.

Tyken

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 07:54 AM

    hi,

    Check out the below related thread

    http://www.sap-img.com/abap/sending-email-with-attachment.htm

    Regards,

    Santosh

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 07:54 AM

    &----


    *& Report ZMULTIPLE_ATTACHMENT

    *&

    &----


    *&

    *&

    &----


    REPORT zmultiple_attachment.

    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.

    DATA: tab_lines1 LIKE sy-tabix.

    *Creating the document to be sent

    doc_chng-obj_name = 'OFFER'.

    doc_chng-obj_descr = 'Auction of a Picasso jr'.

    objtxt = 'Reserve price : $250000'.

    APPEND objtxt.

    objtxt = 'A reproduction of the painting to be auctioned'.

    APPEND objtxt.

    objtxt = 'is enclosed as an attachment.'.

    APPEND objtxt.

    DESCRIBE TABLE objtxt LINES tab_lines.

    READ TABLE objtxt INDEX tab_lines.

    doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

    *Creating the entry for the compressed document

    CLEAR objpack-transf_bin.

    objpack-head_start = 1.

    objpack-head_num = 0.

    objpack-body_start = 1.

    objpack-body_num = tab_lines.

    objpack-doc_type = 'RAW'.

    APPEND objpack.

    *Creating the document attachment

    *content for attachment 1.

    *================================

    objbin = 'ABC'. APPEND objbin.

    objbin = 'ABC '. APPEND objbin.

    objbin = 'ABC '. APPEND objbin.

    DESCRIBE TABLE objbin LINES tab_lines.

    *================================

    *Creating the entry for the compressed attachment

    *Entry for attachment 1.

    *================================

    objpack-transf_bin = 'X'.

    objpack-head_start = 1.

    objpack-head_num = 1.

    objpack-body_start = 1.

    *u201C starting line for attachment 1 in OBJBIN object

    objpack-body_num = tab_lines.

    *u201C total number of line for the attachment 1 in OBJBIN object.

    objpack-doc_type = 'TXT'.

    objpack-obj_name = 'ATTACHMENT1'.

    objpack-obj_descr = 'ABC'.

    objpack-doc_size = tab_lines * 255.

    APPEND objpack..

    *================================

    *content for attachment 1.

    *================================

    objbin = 'XYZ'. APPEND objbin.

    objbin = 'XYZ '. APPEND objbin.

    objbin = 'XYZ '. APPEND objbin.

    *================================

    *Entry for attachment 1.

    *================================

    DESCRIBE TABLE objbin LINES tab_lines1.

    tab_lines1 = tab_lines1 - tab_lines.

    objpack-transf_bin = 'X'.

    objpack-head_start = 1.

    objpack-head_num = 1.

    objpack-body_start = tab_lines + 1.

    *u201C starting line for attachment 1 in OBJBIN object

    objpack-body_num = tab_lines1.

    *u201C total number of line for the attachment 1 in OBJBIN object.

    objpack-doc_type = 'TXT'.

    objpack-obj_name = 'ATTACHMENT2'.

    objpack-obj_descr = 'XYZ'.

    objpack-doc_size = tab_lines * 255.

    APPEND objpack..

    *Entering names in the distribution list

    reclist-receiver = 'mailid'.

    reclist-rec_type = 'U'.

    APPEND reclist.

    reclist-receiver = 'mailid'.

    reclist-rec_type = 'B'.

    APPEND reclist.

    WRITE:/ 'BEFORE SENDING MAIL'.

    LOOP AT reclist.

    WRITE:/ reclist-receiver.

    ENDLOOP.

    *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 = objpack

    object_header = objhead

    contents_bin = objbin

    contents_txt = objtxt

    receivers = reclist

    EXCEPTIONS

    too_many_receivers = 1

    document_not_sent = 2

    operation_no_authorization = 4

    OTHERS = 99.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 08:36 AM
    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 08:49 AM

    Hi,

    Try this code.

    • This program will allowed you to send email with attachment.

    • First, specify the attachment file from your local hardisk and execute.

    • Next, specify the sender email address and click the send button.

    • Written by : SAP Basis, ABAP Programming and Other IMG Stuff

    • http://www.sap-img.com

    report y_cr17_mail.

    data method1 like sy-ucomm.

    data g_user like soudnamei1.

    data g_user_data like soudatai1.

    data g_owner like soud-usrnam.

    data g_receipients like soos1 occurs 0 with header line.

    data g_document like sood4 .

    data g_header like sood2.

    data g_folmam like sofm2.

    data g_objcnt like soli occurs 0 with header line.

    data g_objhead like soli occurs 0 with header line.

    data g_objpara like selc occurs 0 with header line.

    data g_objparb like soop1 occurs 0 with header line.

    data g_attachments like sood5 occurs 0 with header line.

    data g_references like soxrl occurs 0 with header line.

    data g_authority like sofa-usracc.

    data g_ref_document like sood4.

    data g_new_parent like soodk.

    data: begin of g_files occurs 10 ,

    text(4096) type c,

    end of g_files.

    data : fold_number(12) type c,

    fold_yr(2) type c,

    fold_type(3) type c.

    parameters ws_file(4096) type c default 'c:\debugger.txt'.

    • Can me any file fromyour pc ....either xls or word or ppt etc ...

    g_user-sapname = sy-uname.

    call function 'SO_USER_READ_API1'

    exporting

    user = g_user

    • PREPARE_FOR_FOLDER_ACCESS = ' '

    importing

    user_data = g_user_data

    • EXCEPTIONS

    • USER_NOT_EXIST = 1

    • PARAMETER_ERROR = 2

    • X_ERROR = 3

    • OTHERS = 4

    .

    if sy-subrc <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    endif.

    fold_type = g_user_data-outboxfol+0(3).

    fold_yr = g_user_data-outboxfol+3(2).

    fold_number = g_user_data-outboxfol+5(12).

    clear g_files.

    refresh : g_objcnt,

    g_objhead,

    g_objpara,

    g_objparb,

    g_receipients,

    g_attachments,

    g_references,

    g_files.

    method1 = 'SAVE'.

    g_document-foltp = fold_type.

    g_document-folyr = fold_yr.

    g_document-folno = fold_number.

    g_document-objtp = g_user_data-object_typ.

    *g_document-OBJYR = '27'.

    *g_document-OBJNO = '000000002365'.

    *g_document-OBJNAM = 'MESSAGE'.

    g_document-objdes = 'sap-img.com testing by program'.

    g_document-folrg = 'O'.

    *g_document-okcode = 'CHNG'.

    g_document-objlen = '0'.

    g_document-file_ext = 'TXT'.

    g_header-objdes = 'sap-img.com testing by program'.

    g_header-file_ext = 'TXT'.

    call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

    exporting

    method = method1

    office_user = sy-uname

    ref_document = g_ref_document

    new_parent = g_new_parent

    importing

    authority = g_authority

    tables

    objcont = g_objcnt

    objhead = g_objhead

    objpara = g_objpara

    objparb = g_objparb

    recipients = g_receipients

    attachments = g_attachments

    references = g_references

    files = g_files

    changing

    document = g_document

    header_data = g_header

    • FOLMEM_DATA =

    • RECEIVE_DATA =

    .

    • File from the pc to send...

    method1 = 'ATTCREATEFROMPC'.

    g_files-text = ws_file.

    append g_files.

    call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

    exporting

    method = method1

    office_user = g_owner

    ref_document = g_ref_document

    new_parent = g_new_parent

    importing

    authority = g_authority

    tables

    objcont = g_objcnt

    objhead = g_objhead

    objpara = g_objpara

    objparb = g_objparb

    recipients = g_receipients

    attachments = g_attachments

    references = g_references

    files = g_files

    changing

    document = g_document

    header_data = g_header

    .

    method1 = 'SEND'.

    g_receipients-recnam = 'MK085'.

    g_receipients-recesc = 'B'.

    g_receipients-sndex = 'X'.

    append g_receipients.

    call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

    exporting

    method = method1

    office_user = g_owner

    ref_document = g_ref_document

    new_parent = g_new_parent

    importing

    authority = g_authority

    tables

    objcont = g_objcnt

    objhead = g_objhead

    objpara = g_objpara

    objparb = g_objparb

    recipients = g_receipients

    attachments = g_attachments

    references = g_references

    files = g_files

    changing

    document = g_document

    header_data = g_header.

    *-- End of Program

    Reward pts if usefull.

    Regards,

    Dhan

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.