0% found this document useful (0 votes)
261 views4 pages

SAP ABAP Sample Email Sending Code Through SMTP

This document defines variables and data structures used to generate a confirmation letter, convert it to PDF format, attach the PDF to an email, and send the email. It includes: 1) Data declarations for the output document, text lines, receivers, and work areas 2) A call to generate the confirmation letter form 3) Conversion of the form output to PDF 4) Population of email body text and attachment object 5) Retrieval of recipient email addresses 6) Calling a function to send the email with attached PDF

Uploaded by

Rupam Dutta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
261 views4 pages

SAP ABAP Sample Email Sending Code Through SMTP

This document defines variables and data structures used to generate a confirmation letter, convert it to PDF format, attach the PDF to an email, and send the email. It includes: 1) Data declarations for the output document, text lines, receivers, and work areas 2) A call to generate the confirmation letter form 3) Conversion of the form output to PDF 4) Population of email body text and attachment object 5) Retrieval of recipient email addresses 6) Calling a function to send the email with attached PDF

Uploaded by

Rupam Dutta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,

i_tline TYPE TABLE OF tline WITH HEADER LINE,


i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
* Objects to send mail.
i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
* Work Area declarations
wa_objhead TYPE soli_tab,
w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl,
wa_doc_chng TYPE sodocchgi1,
w_data TYPE sodocchgi1,
wa_buffer TYPE string, "To convert from 132 to 255
* Variables declarations
v_form_name TYPE rs38l_fnam,
v_len_in LIKE sood-objlen,
v_len_out LIKE sood-objlen,
v_len_outn TYPE i,
v_lines_txt TYPE i,
v_lines_bin TYPE i.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'


EXPORTING
formname = 'ZHR_SM_CONFIRMATION'
IMPORTING
fm_name = v_form_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
w_ctrlop-getotf = 'X'.
w_ctrlop-no_dialog = 'X'.
w_compop-tddest = 'LP01'.
PERFORM get_printdetail.
CALL FUNCTION v_form_name
EXPORTING
control_parameters = w_ctrlop
output_options = w_compop
user_settings = ''
p_memo_no = v_memo_no
p_ord_no = ord_no
p_sd_by = sd_by
p_sd_by2 = sd_by2
ord_date = ord_date
check_copy = check_copy
status = status
status_date = status_date
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
IMPORTING
job_output_info = w_return
TABLES
it_copy = it_copy2
it_form = it_form
lt_text = lt_text2
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
i_otf[] = w_return-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
LOOP AT i_tline.
TRANSLATE i_tline USING '~'.
CONCATENATE wa_buffer i_tline INTO wa_buffer.
ENDLOOP.
TRANSLATE wa_buffer USING '~'.
DO.
i_record = wa_buffer.
APPEND i_record.
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
* Attachment
REFRESH: i_reclist,
i_objtxt,
i_objbin,
i_objpack.
CLEAR wa_objhead.
i_objbin[] = i_record[].
* Create Message Body Title and Description
i_objtxt = 'Dear Sir/Madam'.
APPEND i_objtxt.
CLEAR: i_objtxt.
APPEND i_objtxt.
i_objtxt = 'Please find attached Confirmation Letter. In case of any doubt
/queries, kindly contact HR department.'.
APPEND i_objtxt.
CLEAR: i_objtxt.
APPEND i_objtxt.

i_objtxt = 'Note: This is a system generated email,do not reply .' .


APPEND i_objtxt.
CLEAR: i_objtxt.
APPEND i_objtxt.

i_objtxt = 'Regards'.
APPEND i_objtxt.
CLEAR: i_objtxt.
APPEND i_objtxt.
i_objtxt = 'Team HR'.
APPEND i_objtxt.

DESCRIBE TABLE i_objtxt LINES v_lines_txt.


READ TABLE i_objtxt INDEX v_lines_txt.
wa_doc_chng-obj_name = 'Confirmation Letter'.
wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr = 'Confirmation Letter'.
wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = v_lines_txt * 255.
* Main Text
CLEAR i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
APPEND i_objpack.
* Attachment (pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
DESCRIBE TABLE i_objbin LINES v_lines_bin.
READ TABLE i_objbin INDEX v_lines_bin.
i_objpack-doc_size = v_lines_bin * 255 .
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'Attachment'.
i_objpack-obj_descr = 'Attachment'.
APPEND i_objpack.

CLEAR i_reclist.
CLEAR: i_reclist[],i_reclist.
LOOP AT it_mail INTO wa_mail.
PERFORM get_email_address USING wa_mail-pernr CHANGING i_reclist-receiver.
i_reclist-rec_type = 'U'.
APPEND i_reclist.
CLEAR:i_reclist.
ENDLOOP.

"""""""
DATA: lv_uname TYPE uname.
CLEAR: lv_uname.
lv_uname = sy-uname.
sy-uname = 'PRAYOG'.
"""""""

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'


EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = i_objpack
object_header = wa_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE 'Error When Sending the File' TYPE 'S'.
* WRITE:/ 'Error When Sending the File', sy-subrc.
ELSE.
MESSAGE 'Data saved and mail sent sucessfully' TYPE 'S'.
ENDIF.
* sy-uname = lv_uname.

You might also like