Skip to Content
0

How to send the mail with image using SO_DOCUMENT_SEND_API1?

Jun 08, 2017 at 10:36 AM

199

avatar image

Hi Experts,

I would like to know how to send the mail with image by using the FM SO_DOCUMENT_SEND_API1.

I am using the following statement for logo in my email body.

lt_message = '<img width=130 height=21 src="mylogo.bmp"'.

I don't know which tcode will be used to upload the image. I have uploaded the image in both se78 and oaer. But it does not work. Kindly help me.

Regards,

Tamilselvan.M

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Raymond Giuseppi
Jun 08, 2017 at 11:49 AM
1

NB: No longer use an outdated FM like SO_DOCUMENT_SEND_API1, even if it already allowed attachments, but a class like CL_BCS...

Attach the image to the mail and in the html body use an url like CID:logo.gif using same name than appended document. Perform some search for methods cl_document_bcs->create_document and add_attachment, cl_bcs->set_document in scn forums.

If you don't feel confident with class, old SAPscript FM like SAPSCRIPT_[GET,SEARCH]_GRAPHIC_BDS and SAPSCRIPT_CONVERT_BITMAP can extract and convert SE78 images.

Show 5 Share
10 |10000 characters needed characters left characters exceeded

Hi Raymond,

Thanks!

I am still having the doubt. If you see my question, there is src property in image tag. In that, I have used mylogo.bmp. I have maintained in both SE78 and OAER. But it is still not working.

Can you tell me where to store the mylogo.bmp logo for this scenario?

Regards,

Tamilselvan.M

0

Well consider that the mail recipient could not have access to your system, only to the mail and its attachment, could you guess?

0

Hi Raymond,

Well, I can understand that. My question is very simple and straight forward. I have declared the mylogo.bmp in HTML body. When I checked SOSG tcode, I am not able to see my logo in mail body.

In order to access mylogo.bmp, where shall I upload the logo in sap system?

Regards,

Tamilselvan.M

0

Either

  • Publish the image somewhere on the web and use its url in the mail body
  • Attach the image to the mail, us a CI: prefix for the local url
0

Hi Raymond,

Thanks.

When I try to upload the logo in SMW0, it is asking for the package. Even though I have given the customized package, it does not accept. How shall we upload the image in custom package in SMW0?

Regards,

Tamilselvan.M

0
umayaraja b Jun 12, 2017 at 03:11 AM
0

hi tamil,

Just see that code for send mail with CL_BCS class and 'HTM' Usage.

TABLES : eine ,
         marc ,
         lfa1 .


TYPES : BEGIN OF st_apvend ,
          lifnr TYPE lifnr,
          name1 TYPE name1_gp,
          matnr TYPE matnr,
          maktx TYPE maktx,
          adrnr TYPE lfa1-adrnr,
        END OF st_apvend.


DATA:  wa_apvend  TYPE st_apvend,
       wa_apvend1 TYPE st_apvend, "FOR MAIL
       itvend     TYPE TABLE OF st_apvend.
DATA : whr_clause TYPE                   string,
       opr(4)     TYPE                   c VALUE ' AND'.


TYPES : BEGIN OF st_adr6,
          smtp_addr  TYPE adr6-smtp_addr,
          addrnumber TYPE adr6-addrnumber,
        END OF st_adr6.


DATA : wa_adr6 TYPE st_adr6.


DATA: vend TYPE lfa1-lifnr .


SELECT-OPTIONS : ekgrp FOR eine-ekgrp NO-DISPLAY,
                 vend1 FOR vend NO-DISPLAY ,
                 lgpro FOR marc-lgpro NO-DISPLAY.
PARAMETERS p_lifnr TYPE lifnr NO-DISPLAY.


CONSTANTS: gc_tab  TYPE c VALUE cl_bcs_convert=>gc_tab,
           gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf.


DATA:  mailto TYPE ad_smtpadr.


DATA send_request   TYPE REF TO cl_bcs.
DATA document       TYPE REF TO cl_document_bcs.
DATA recipient      TYPE REF TO if_recipient_bcs.
DATA bcs_exception  TYPE REF TO cx_bcs.
DATA :  it_contents TYPE          soli_tab,
        wa_contents LIKE LINE OF  it_contents.


DATA binary_content TYPE solix_tab.
DATA size           TYPE so_obj_len.
DATA sent_to_all    TYPE os_boolean.


TYPES : BEGIN OF st_lfa1,
          lifnr TYPE lfa1-lifnr,
          adrnr TYPE lfa1-adrnr,
        END OF st_lfa1.


DATA : it_lfa1 TYPE TABLE OF st_lfa1,
       wa_lfa1 TYPE st_lfa1.


TYPES : BEGIN OF st_lfm1,
          lifnr TYPE lfm1-lifnr,
          verkf TYPE lfm1-verkf,
        END OF st_lfm1.


DATA : wa_lfm1 TYPE st_lfm1.


TYPES  : BEGIN OF ty_mail,
           addrnumber TYPE adr6-addrnumber,
           smtp_addr  TYPE adr6-smtp_addr,
         END OF ty_mail.
DATA : it_mail TYPE TABLE OF ty_mail WITH HEADER LINE.

SELECT-OPTIONS s_lifnr FOR lfa1-lifnr.


START-OF-SELECTION.

  IF s_lifnr IS NOT INITIAL.
    SELECT lifnr adrnr FROM lfa1 INTO CORRESPONDING FIELDS OF TABLE it_lfa1 WHERE lifnr IN s_lifnr.
    LOOP AT it_lfa1 INTO wa_lfa1.
      p_lifnr = wa_lfa1-lifnr.
      REFRESH: it_mail[].
      PERFORM create_content.
      SELECT addrnumber smtp_addr INTO TABLE it_mail FROM adr6  WHERE addrnumber =  wa_lfa1-adrnr.
      LOOP AT it_mail.
        mailto = it_mail-smtp_addr.
        PERFORM send.
      ENDLOOP.
    ENDLOOP.
  ELSE.
    MESSAGE 'Please Fill Supplier Number In Field' TYPE 'I'.
  ENDIF.

FORM send.
  CLEAR : wa_contents.
  REFRESH : it_contents[].

  TRY.
      send_request = cl_bcs=>create_persistent( ).
      wa_contents-line = text-001.
      REPLACE '&1' WITH wa_lfm1-verkf INTO wa_contents-line.
      APPEND wa_contents TO it_contents.
      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.
      wa_contents-line = text-024.
      APPEND wa_contents TO it_contents.
      wa_contents-line = text-002.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-003.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-004.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-005.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-006.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-007.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-008.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ' '.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-009.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-010.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ''.
      APPEND wa_contents TO it_contents.
      wa_contents-line = text-025. "'<h2><U>Note:<U><h2/>'.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-026.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-027.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-028.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-029. 
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-030.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-031.
      APPEND wa_contents TO it_contents.

      wa_contents-line = text-011.
      APPEND wa_contents TO it_contents.


      wa_contents-line = ''.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-012.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-013.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-014.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-015.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-016.
      APPEND wa_contents TO it_contents.


      wa_contents-line = text-017.
      APPEND wa_contents TO it_contents.


      document = cl_document_bcs=>create_document(
        i_type    = 'HTM'
        i_text    = it_contents "main_text
        i_subject = text-022 ).                             "#EC NOTEXT


      document->add_attachment(
        i_attachment_type    = 'xls'                        "#EC NOTEXT
        i_attachment_subject = 'HSN-SpreadSheet'            "#EC NOTEXT
        i_attachment_size    = size
        i_att_content_hex    = binary_content ).
      send_request->set_document( document ).


      IF mailto IS NOT INITIAL .
        recipient = cl_cam_address_bcs=>create_internet_address( mailto ).
      ELSE.
        MESSAGE text-023 TYPE 'I'.
        EXIT.
      ENDIF.
      send_request->add_recipient( recipient ).


      sent_to_all = send_request->send( i_with_error_screen = 'X' ).


      COMMIT WORK.


      IF sent_to_all IS INITIAL.
        MESSAGE i500(sbcoms) WITH mailto.
      ELSE.
        MESSAGE s022(so).
      ENDIF.


    CATCH cx_bcs INTO bcs_exception.
      MESSAGE i865(so) WITH bcs_exception->error_type.
  ENDTRY.


ENDFORM.                    "send


FORM create_content.


  DATA lv_string TYPE string.
  CLEAR : lv_string.
*  REFRESH : lv_string.
  CONCATENATE  ' E~ESOKZ = ' ' 0 ' opr ' A~URZTP = ' ' 1 ' opr ' C~SOBSL =  ' ''' ''' INTO whr_clause .


  SELECT
    a~matnr
    m~maktx
    a~lifnr
    l~name1
    l~adrnr
    INTO CORRESPONDING FIELDS OF TABLE itvend
             FROM eina AS a INNER JOIN eine AS e ON a~infnr = e~infnr AND e~loekz <> 'X'
             INNER JOIN eord AS b ON a~matnr = b~matnr AND a~lifnr = b~lifnr
             INNER JOIN lfa1 AS l ON l~lifnr = a~lifnr
             INNER JOIN makt AS m ON m~matnr = a~matnr
             INNER JOIN marc AS c ON c~matnr = a~matnr
             WHERE (whr_clause) AND c~ekgrp IN ekgrp
  AND c~lgpro IN lgpro AND m~matnr = a~matnr AND c~matnr = a~matnr AND a~urztp <> 2 AND e~werks = 'LEP1' AND l~lifnr IN vend1. "AND e~loekz <> 'X'.


  SORT itvend BY lifnr.
  DELETE itvend WHERE lifnr <> p_lifnr.
  READ TABLE itvend INTO wa_apvend1 INDEX 1.


*  SELECT SINGLE smtp_addr FROM adr6 INTO CORRESPONDING FIELDS OF wa_adr6 WHERE addrnumber =  wa_apvend1-adrnr.
*  mailto = wa_adr6-smtp_addr.


  SELECT SINGLE verkf lifnr FROM lfm1 INTO CORRESPONDING FIELDS OF wa_lfm1 WHERE lifnr = p_lifnr.


  CONCATENATE 'SUPPLIER HSN CODE MASTER'                    "#EC NOTEXT
              gc_crlf gc_crlf
              INTO lv_string.


  CONCATENATE lv_string
              text-018    gc_tab
              wa_apvend1-name1   gc_crlf
              INTO lv_string.


  CONCATENATE lv_string
              text-019    gc_tab
              p_lifnr   gc_crlf
              INTO lv_string.


  CONCATENATE lv_string
              text-020    gc_tab
              gc_crlf gc_crlf
              INTO lv_string.


  CONCATENATE lv_string
              text-021    gc_tab
              gc_crlf gc_crlf
              INTO lv_string.
* header line
  CONCATENATE lv_string
              'LECS Material Code' gc_tab                   "#EC NOTEXT
              'Material Description'     gc_tab             "#EC NOTEXT
              'Supplier Description of goods'     gc_tab    "#EC NOTEXT
              'HSN Code Of Goods (SAC)'     gc_tab          "#EC NOTEXT
              'Material Group'     gc_crlf                  "#EC NOTEXT
              INTO lv_string.
**********************************************************************
  SORT itvend BY matnr.
  DELETE ADJACENT DUPLICATES FROM itvend COMPARING matnr.
**********************************************************************
  LOOP AT itvend INTO wa_apvend.
    CONCATENATE lv_string
                wa_apvend-matnr gc_tab
                wa_apvend-maktx   gc_crlf
                INTO lv_string.
  ENDLOOP.


  TRY.
      cl_bcs_convert=>string_to_solix(
        EXPORTING
          iv_string   = lv_string
          iv_codepage = '4103'
          iv_add_bom  = 'X'
        IMPORTING
          et_solix  = binary_content
          ev_size   = size ).
    CATCH cx_bcs.
      MESSAGE e445(so).
  ENDTRY.


ENDFORM.                    "create_content


regards,

umayaraja

Share
10 |10000 characters needed characters left characters exceeded