Application Development and Automation 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: 

cl_bcs send mail language problem

0 Kudos
494

Hi Experts,

I am embedding a jpg to mail body. So I am using cl_bcs class for sending mail. There is no problem here. But it is translating turkish characters to meaningless chars . So it doesnt accept the turkish chars. How can I fix this ?

  IF gv_mr_api IS INITIAL.

gv_mr_api = cl_mime_repository_api=>if_mr_api~get_api( ).

ENDIF.

DATA : ls_user2 LIKE ls_user.
DATA : lv_uname2 LIKE lv_uname.

CALL METHOD gv_mr_api->get
EXPORTING
i_url = '/SAP/PUBLIC/deneme.jpg' "Image path
IMPORTING
e_is_folder = is_folder
e_content = gv_content
e_loio = l_loio
EXCEPTIONS
parameter_missing = 1
error_occured = 2
not_found = 3
permission_failure = 4
OTHERS = 5.
*&Convert Image to Xstring table form

l_obj_len = xstrlen( gv_content ).
lv_graphic_length = xstrlen( gv_content ).

"get whole image
CLEAR gr_xstr.
gr_xstr = gv_content(l_obj_len).

l_offset = 0.
l_length = 255.

CLEAR lt_solix[].
WHILE l_offset < lv_graphic_length.
l_diff = lv_graphic_length - l_offset.
IF l_diff > l_length.
ls_solix-line = gr_xstr+l_offset(l_length).
ELSE.
ls_solix-line = gr_xstr+l_offset(l_diff).
ENDIF.
APPEND ls_solix TO lt_solix.
ADD l_length TO l_offset.
ENDWHILE.

l_filename = 'img_deneme.jpg'.
l_content_id = 'img_deneme.jpg'.

CREATE OBJECT lo_mime_helper.
CALL METHOD lo_mime_helper->add_binary_part
EXPORTING
content = lt_solix "Xstring in table form
filename = l_filename "file name to be given to image
extension = 'JPG' "type of file
description = 'Graphic in JPG format' "description
content_type = 'image/jpg' "content type / Mime type. If mime type not present in system then need to add through tcode : SMW0
length = l_obj_len "length of image
content_id = l_content_id. "content id would be used in html part

REFRESH lt_soli[].

CLEAR ls_soli.
ls_soli = '<body>'.
APPEND ls_soli TO lt_soli.

SELECT * FROM zqm_dof_dprtmn
INTO TABLE @DATA(lt_dp2)
WHERE dep_no = @ls_dprtmn-dep_no
AND dep_kisi LT @ls_dprtmn-dep_kisi.

lv_uname2 = zqm_dof-atanan_kisi.

CALL FUNCTION 'ISR_GET_USER_DETAILS'
EXPORTING
id_user_id = lv_uname2
CHANGING
is_user_data = ls_user2
EXCEPTIONS
user_not_found = 1
OTHERS = 2.

DATA : lv_dmmy TYPE string .
CLEAR ls_soli.
ls_soli = '<html><body>'."lv_dmmy."'<HTML lang = ' && TEXT-m00 && '><BODY>'."<HTML ><BODY>.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
* ls_soli = TEXT-m01.
* APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = ls_user2-fullname.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = ' Tarafından '.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = zqm_dof-dof_no .
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = ' Numaralı DÖF Açılmıştır'.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = '<br><img alt="IMAGE.jpg" src="cid:img_deneme.jpg" /><br>'.
APPEND ls_soli TO lt_soli.
ls_soli = '<br><br>--------'.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.
ls_soli = '</body></html>'.
APPEND ls_soli TO lt_soli. CLEAR ls_soli.

CALL METHOD lo_mime_helper->set_main_html
EXPORTING
content = lt_soli
filename = 'HTM' "filename for HMTL form
description = zqm_dof-dof_no && ' numaralı DÖF'. "Title

l_subject = zqm_dof-dof_no && ' numaralı DÖF'. "subject
lo_doc_bcs = cl_document_bcs=>create_from_multirelated(
i_subject = l_subject
i_multirel_service = lo_mime_helper ).

lo_bcs = cl_bcs=>create_persistent( ).

"Create Document
lo_bcs->set_document( i_document = lo_doc_bcs ).

"create Sender
lo_sender = cl_cam_address_bcs=>create_internet_address( 'denemedeneme' ).

* Set sender
lo_bcs->set_sender(
EXPORTING
i_sender = lo_sender ).

lv_mail = ls_user2-e_mail.
IF lv_mail IS NOT INITIAL.

lo_recipient = cl_cam_address_bcs=>create_internet_address( i_address_string = lv_mail ).
lo_bcs->add_recipient( i_recipient = lo_recipient ).

ENDIF.
LOOP AT lt_dp2 INTO DATA(ls_dp).
CLEAR ls_user.
CALL FUNCTION 'ISR_GET_USER_DETAILS'
EXPORTING
id_user_id = ls_dp-kullanici_adi
CHANGING
is_user_data = ls_user
EXCEPTIONS
user_not_found = 1
OTHERS = 2.
CLEAR lv_mail.
lv_mail = ls_user-e_mail.

lo_recipient = cl_cam_address_bcs=>create_internet_address( i_address_string = lv_mail ).
lo_bcs->add_recipient( i_recipient = lo_recipient ).
ENDLOOP.

"Create Recipient
lo_recipient = cl_cam_address_bcs=>create_internet_address( i_address_string =
'denemedeneme' ).
lo_bcs->add_recipient( i_recipient = lo_recipient ).

lo_bcs->send( ).
COMMIT WORK AND WAIT.
1 REPLY 1

matt
Active Contributor
407

See here: https://answers.sap.com/questions/849552/send-email-from-bsp----character-settings.html

You need to set the correct code page in transaction SCOT. Business Communication Administration->Settings->SMTP Connection->Outbound Messages->Settings button "Code Page Settings".