cancel
Showing results for 
Search instead for 
Did you mean: 

Send mail using class.

Former Member
0 Kudos

Hi guys,

Actually in send mail step i need to add more than 50 characters.I tried with FM and even in workflow.But its allowing only 50 characters.So iam trying using OOABAP.I have done the coding below but still iam unable to receive the mail in SOST.I dont need body(since its optional, i can add later).Please have a look into this code and let me know.

DATA :it_mail TYPE STANDARD TABLE OF zqm_email,

wa_mail TYPE zqm_email.

  • declaration for content

DATA: ig_content TYPE TABLE OF solisti1,

wa_content TYPE solisti1,

w_role(100) TYPE c.

DATA: lo_mailer TYPE REF TO cl_bcs,

lo_document TYPE REF TO cl_document_bcs,

lo_rec_mail TYPE REF TO cl_cam_address_bcs,

lo_error TYPE REF TO cx_bcs,

l_user TYPE uname,

l_string TYPE string,

lv_subject TYPE string,

lv_doc_title TYPE so_obj_des,

lt_table TYPE soli_tab.

LOOP AT it_mail INTO wa_mail.

wa_mail-smtp_addr = 'XXX'.

APPEND wa_mail TO it_mail.

ENDLOOP.

  • Mail Content creation

DATA: w_string1 TYPE string.

CONCATENATE 'Notification of Status Change for Supplier Corrective Action Request (SCAR) #'(007) w_string1 INTO

lv_subject SEPARATED BY space.

&----


  • MAIL GENERATION

----


REFRESH lt_table.

lt_table[] = ig_content[].

TRY.

lo_mailer = cl_bcs=>create_persistent( ).

lo_mailer->set_message_subject( lv_subject ). " Mail Subject

MOVE lv_subject TO lv_doc_title.

lo_document = cl_document_bcs=>create_document( i_type = 'HTM'

i_text = lt_table " Message body

i_subject = lv_doc_title ).

lo_mailer->set_document( lo_document ).

FREE lo_rec_mail.

lo_rec_mail = cl_cam_address_bcs=>create_internet_address( wa_mail-smtp_addr ).

lo_mailer->add_recipient( EXPORTING i_recipient = lo_rec_mail

i_express = abap_true ).

lo_mailer->set_status_attributes( 'N' ). " No read-recipt/delv-note

lo_mailer->send( ).

COMMIT WORK.

CATCH cx_bcs INTO lo_error. " Exception has occurred

ENDTRY.

CLEAR wa_mail.

Accepted Solutions (1)

Accepted Solutions (1)

sarath_k
Participant
0 Kudos

The below is the sample code i have used and it works for me.

lv_sub = lv_wi_txt.

*check email id availble or not

*send email to deadline approver

IF lw_addr IS NOT INITIAL.

CLEAR lv_send_request .

TRY.

lv_send_request = cl_bcs=>create_persistent( ).

CLEAR lv_document .

lv_document = cl_document_bcs=>create_document(

i_type = 'RAW'

i_text = xyz

i_length = '12'

i_subject = '' ).

CALL METHOD lv_send_request->set_message_subject

EXPORTING

ip_subject = lv_sub.

CATCH cx_send_req_bcs INTO lv_l_send_exception .

CALL METHOD lv_send_request->set_document( lv_document ).

lv_sender = cl_sapuser_bcs=>create( sy-uname ).

CALL METHOD lv_send_request->set_sender

EXPORTING

i_sender = lv_sender.

lv_recipient = cl_cam_address_bcs=>create_internet_address(

i_address_string = lw_addr ).

CALL METHOD lv_send_request->add_recipient

EXPORTING

i_recipient = lv_recipient

i_express = 'X'.

CALL METHOD lv_send_request->set_status_attributes

EXPORTING

i_requested_status = 'E'

i_status_mail = 'E'.

CALL METHOD lv_send_request->set_send_immediately( 'X' ).

CALL METHOD lv_send_request->send(

EXPORTING

i_with_error_screen = 'X'

RECEIVING

result = lv_sent_to_all ).

ENDTRY.

COMMIT WORK.

ENDIF.

Former Member
0 Kudos

Thank you thread closed.

Answers (1)

Answers (1)

former_member185167
Active Contributor
0 Kudos

Hello,

Did you search the forum before posting? I searched for "50 characters" and came up with OSS Note 975947.

regards

Rick Bakker

hanabi technology