Skip to Content

How to show the attached document in email in inline mode

Hi, ABAP Community.

In our project there is a need to send a document to end-user e-mail account, in this specific case it is Microsoft Outlook. The sending is working, but I have a problem with the way it arrives the user mailbox. The HTM-file arrives as an attachment while I would like to see it in inline mode — straight in the message body.

Below, I post some code fragment to let you understand what exactly I'm doing. Suppose, my function has already the document in binary format (SOLIX_TAB), now in order to send the document the class CL_BCS is used and I have to follow the next steps:

  1. Create the document with CL_DOCUMENT_BCS:
    document = cl_document_bcs=>create_document(
                              i_type = 'HTM'
                              i_text = im_text
                              i_length = txt_len
                              i_subject = im_subject ).
  2. Add the attachment:
    CALL METHOD document->add_attachment
    i_attachment_type = 'DOC'
    i_attachment_subject = im_document_name
    i_att_content_hex = im_doc_attachment.
  3. Add the document to the send request:
    DATA: send_request TYPE REF TO cl_bcs.
    CALL METHOD send_request->set_document( document ).
  4. Set instant sending:
    CALL METHOD send_request->set_send_immediately( 'X' ).
  5. Set recipient:
    DATA: recipient TYPE REF TO if_recipient_bcs.
    CALL METHOD send_request->add_recipient
    i_recipient = recipient
    i_express = 'X'.
  6. Send the document:
    CALL METHOD send_request->send(
                              i_with_error_screen = 'X'
                              result = sent_to_all ).
    IF sent_to_all = 'X'.
                   WRITE text-003.

As the result of this code execution, I got the blank email with two attachments: one with the HTM extension and one with the DOC. I would like that the content of the HTM-document (container with im_text, im_subject) will be displayed in the message body and the only DOC-file will be sent as an attachment. How can I get the desired result?


Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • Best Answer
    Posted on Jan 11, 2015 at 05:09 PM


    It is not clear from your post the content of i_text .

    Here is a program that send html body and html attachment.


    Add a comment
    10|10000 characters needed characters exceeded

    • Hi Eitan,

      I tried to follow the example you provided. I definded the object of CL_HTM class which was also implemented according to your example, filled the the fragment property with:

      ob_htm->append( fragment = '<p>' ).
      ob_htm->append( fragment = 'Text' ).
      ob_htm->append( fragment = '</p>' ).

      Then, I converted ob_htm->htm_string to it_solix and created the document with parameter i_hex = it_solix. Finally, I send the document to email, but the problem still persists, the document has been sent as attachment instead of inline mode — in the body of the email and not as attachment. Could you, please, point me what I'm doing wrong?

      P.S. Probably, there is a problem with MIME-definition. Should I define some specific MIME-value before the document will be sent?

  • Posted on Jan 12, 2015 at 06:14 PM


    May I suggest that you copy the program to your system and run the program and see if you get what you need.

    If the result is ok you can dissect the program......

    There are:

    PERFORM mail_1_prep_1 - Create the message body .

    PERFORM mail_1_prep_2 - Create attachment .

    cl_htm is just a fancy "edit and concatenate service" .

    I look at the Internet to find out what is "email inline mode" and it seems that it has to do with pictures in the body of the mail .

    When you say "inline mode" what do you mean ?


    Add a comment
    10|10000 characters needed characters exceeded

    • Hi Eitan,

      I completely copied the first code example (both mail_1_prep_1 and mail_1_prep_2) and tried to execute it. The program works, but the message content is still presented as attachments with the blank message body. I suppose, it's a matter of configuration of SAP/Exchange/Outlook and not the code-related issue. Can you recommend what and where should I check in order to achieve the desired result — the text of the message will be placed inside of the message body and not as an attachment with the empty message body.


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.