Advertising:
Create e-mail with classic classes and methods: Difference between revisions
From SAP Knowledge Base
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[ | {{Template:MetaDesc|This page shows how to send an email using classic classes and methods. Be it direct email recipients or recipients who are maintained in a distribution list.}} | ||
[[Category:Code_snippets]] | |||
<syntaxhighlight lang="abap" line start="1"> | <syntaxhighlight lang="abap" line start="1"> | ||
DATA: send_request TYPE REF TO cl_bcs, | DATA: send_request TYPE REF TO cl_bcs, | ||
document TYPE REF TO cl_document_bcs, | document TYPE REF TO cl_document_bcs, | ||
Line 16: | Line 16: | ||
att_name TYPE sood-objdes. | att_name TYPE sood-objdes. | ||
send_request = cl_bcs=>create_persistent( ). | |||
CONCATENATE 'Subject' sy-datum INTO subject SEPARATED BY space. | CONCATENATE 'Subject' sy-datum INTO subject SEPARATED BY space. | ||
Line 36: | Line 36: | ||
ev_size = size ). | ev_size = size ). | ||
document->add_attachment( EXPORTING i_attachment_type = 'xls' | |||
i_attachment_subject = att_name | i_attachment_subject = att_name | ||
i_attachment_size = size | i_attachment_size = size | ||
i_att_content_hex = binary_content ). | i_att_content_hex = binary_content ). | ||
send_request->set_document( document ). | |||
"Add sender variant 1 | "Add sender variant 1 | ||
Line 48: | Line 48: | ||
sender2 = cl_cam_address_bcs=>create_internet_address( i_address_string = sender ). | sender2 = cl_cam_address_bcs=>create_internet_address( i_address_string = sender ). | ||
send_request->set_sender( | send_request->set_sender( sender ). "send_request->set_sender( sender2 ) | ||
"Add receivers variant 1: | "Add receivers variant 1: | ||
Line 56: | Line 56: | ||
send_request->add_recipient( receiver ). | send_request->add_recipient( receiver ). | ||
ENDLOOP. | ENDLOOP. | ||
"Add recievers variant 2: | |||
receiver = cl_distributionlist_bcs=>getu_persistent( i_dliname = distributionlist | receiver = cl_distributionlist_bcs=>getu_persistent( i_dliname = distributionlist | ||
i_private = abap_false ). | i_private = abap_false ). |
Latest revision as of 16:51, 31 December 2024
DATA: send_request TYPE REF TO cl_bcs,
document TYPE REF TO cl_document_bcs,
sender TYPE REF TO cl_sapuser_bcs,
sender2 TYPE REF TO if_sender_bcs,
receiver TYPE REF TO if_recipient_bcs,
mail_text_tab TYPE soli_tab,
subject TYPE so_obj_des,
distribution_list TYPE TABLE OF sodlienti1,
recipient TYPE adr6-smtp_addr,
size TYPE so_obj_len,
binary_content TYPE solix_tab,
data_tab_as_string TYPE string,
att_name TYPE sood-objdes.
send_request = cl_bcs=>create_persistent( ).
CONCATENATE 'Subject' sy-datum INTO subject SEPARATED BY space.
APPEND 'Mail text in e-mail' TO mail_text_tab.
document = cl_document_bcs=>create_document( i_type = 'RAW'
i_text = mail_text_tab
i_subject = subject ).
"Attachment: tab data as string to .xls
"new column: CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
"new row: CL_ABAP_CHAR_UTILITIES=>CR_LF
cl_bcs_convert=>string_to_solix( EXPORTING iv_string = data_tab_as_string
iv_codepage = '4103' "suitable for MS Excel, leave empty
iv_add_bom = 'X' "for other doc types
IMPORTING et_solix = binary_content
ev_size = size ).
document->add_attachment( EXPORTING i_attachment_type = 'xls'
i_attachment_subject = att_name
i_attachment_size = size
i_att_content_hex = binary_content ).
send_request->set_document( document ).
"Add sender variant 1
sender = cl_sapuser_bcs=>create( sy-uname ).
"Add sender variant 2
sender2 = cl_cam_address_bcs=>create_internet_address( i_address_string = sender ).
send_request->set_sender( sender ). "send_request->set_sender( sender2 )
"Add receivers variant 1:
LOOP AT distribution_list INTO DATA(recpt).
recipient = recpt-full_name.
receiver = cl_cam_address_bcs=>create_internet_address( recipient ).
send_request->add_recipient( receiver ).
ENDLOOP.
"Add recievers variant 2:
receiver = cl_distributionlist_bcs=>getu_persistent( i_dliname = distributionlist
i_private = abap_false ).
send_request->add_recipient( receiver ).
send_request->send( ).
COMMIT WORK.