Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to show the attached document in email in inline mode

MikeB
Contributor
0 Kudos

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
                   EXPORTING
                              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

                   EXPORTING
                              i_recipient = recipient
                              i_express = 'X'.

  6. Send the document:
    
    

    CALL METHOD send_request->send(

                   EXPORTING

                              i_with_error_screen = 'X'

                   RECEIVING

                              result = sent_to_all ).

    IF sent_to_all = 'X'.

                   WRITE text-003.

    ENDIF.

    COMMIT WORK.

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?

Thanks.

1 ACCEPTED SOLUTION

rosenberg_eitan
Active Contributor
0 Kudos

Hi,

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

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

regards. 

7 REPLIES 7

rosenberg_eitan
Active Contributor
0 Kudos

Hi,

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

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

regards. 

0 Kudos

Hi Eitan,

The parameter i_text will receive some plain text, string which will be passed to the function method.

Thanks for the link, I'll check it.

0 Kudos

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?

rosenberg_eitan
Active Contributor
0 Kudos

Hi,

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 ?

regards. 

0 Kudos

Under «inline mode» I mean the mode, where the content (text, picture etc.) is placed in the email body and not attached to the email as a separate file.

I'll check mail_1_prep_1 more deeply tomorrow.

Thanks.

0 Kudos

Hi,

Please have a look at

regards.

0 Kudos

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.

Thanks.