Sending an E-mail in HTML Format
Sending an E-mail in HTML Format:
*&---------------------------------------------------------------------*
*& Report ZVB_HTML_MAIL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_html_mail.
*DATA DECLARATIONS
DATA: maildata LIKE sodocchgi1,
mailtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
mailrec LIKE somlrec90 OCCURS 0 WITH HEADER LINE.
DATA:lt_emp TYPE TABLE OF zvbemp WITH HEADER LINE,
lw_emp TYPE zvbemp.
START-OF-SELECTION.
CLEAR:maildata,mailtxt,mailrec.
REFRESH:mailtxt,mailrec.
*Selection parameters
PARAMETERS:p_empdep TYPE zvbemp-emp_department.
SELECT *
FROM zvbemp
INTO TABLE lt_emp
WHERE emp_department = p_empdep.
SORT lt_emp BY emp_id ASCENDING.
*READ TABLE lt_emp INTO lw_emp INDEX 1.
maildata-obj_descr = | Employee details of Department: { p_empdep } |.
mailtxt = '<!DOCTYPE html>'.
APPEND mailtxt.
mailtxt = '<html style="background-color:red">'.
APPEND mailtxt.
mailtxt = '<style>table, th, td {border:1px solid black; border-collapse:collapse}</style>'.
APPEND mailtxt.
mailtxt = '<body style="background-color:blue">'.
APPEND mailtxt.
mailtxt = '<p>Dear User,</p>'.
APPEND mailtxt.
mailtxt = '<p>Please find the below details of Employees.</p>'.
APPEND mailtxt.
mailtxt-line = |<p> Employee details of Department : { p_empdep }</p> |.
APPEND mailtxt.
mailtxt = '<table>'." style="width:100%".</p>'.
APPEND mailtxt.
mailtxt = '<tr>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black; border-collapse:collapse;">Employee ID</th>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black; border-collapse:collapse;">Employee First Name</th>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black">Employee Last Name</th>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black">Employee Department</th>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black">Employee Address</th>'.
APPEND mailtxt.
mailtxt = '<th style = "border:1px solid black">Employee Job Location</th>'.
APPEND mailtxt.
mailtxt = '</tr>'.
APPEND mailtxt.
LOOP AT lt_emp INTO lw_emp.
mailtxt = '<tr>'.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_id }</td> |.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_firstname }</td> |.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_lastname }</td>|.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_department }</td> |.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_address }</td> |.
APPEND mailtxt.
mailtxt-line = | <td style = "border:1px solid black">{ lw_emp-emp_job_location }</td> |.
APPEND mailtxt.
mailtxt = '</tr>'.
APPEND mailtxt.
ENDLOOP.
mailtxt = '</table>'.
APPEND mailtxt.
mailtxt = '</body>'.
APPEND mailtxt.
mailtxt = '<p style = "color:red"><b>This is a system generated mail.Please do not reply</b></p>'.
APPEND mailtxt.
mailtxt = '</html>'.
APPEND mailtxt.
mailrec-receiver = 'abc@gmail.com'.
mailrec-rec_type = 'U'.
APPEND mailrec.
* mailrec-receiver = 'def@gmail.com'.
* mailrec-rec_type = 'U'.
* APPEND mailrec.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = maildata
document_type = 'HTM'
* PUT_IN_OUTBOX = ' '
* COMMIT_WORK = ' '
* IP_ENCRYPT =
* IP_SIGN =
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
object_header = mailtxt
object_content = mailtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = mailrec
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.
* Implement suitable error handling here
MESSAGE 'Mail not sent' TYPE 'E'.
ELSE.
WRITE:'Mail sent successfully'.
ENDIF.
COMMIT WORK.
Output:
Comments
Post a Comment