ABAP Program Which Sends An HTML Email From SAP System
ABAP Program Which Sends An HTML Email From SAP System
ABAP Program Which Sends An HTML Email From SAP System
Sign in
This is an example ABAP program which sends an HTML email from SAP system. It includes an image which is uploaded via transaction
SMW0
HTMLEmailinABAPwithImage
1
*&*
*&ReportYMAIL
*&
*&*
*&
*&
*&*
8
9
REPORTymail.
10
11
12
"ImagetoXstringTableform
13
DATA:lv_obj_lenTYPEso_obj_len,
14
lv_graphic_lengthTYPEtdlength,
15
gr_xstrTYPExstring,
16
lv_offsetTYPEi,
17
lv_lengthTYPEi,
18
lv_diffTYPEi,
19
ls_solixTYPEsolix,
20
lt_solixTYPEsolix_tab.
21
22
*AttachimagetoHTMLbody
23
DATA:lv_filenameTYPEstring,
24
lv_content_idTYPEstring,
25
lt_soliTYPEsoli_tab,
26
ls_soliTYPEsoli.
27
28
*ClassforcobiningHMTL&Image
29
DATA:lo_mime_helperTYPEREFTOcl_gbt_multirelated_service.
30
31
*BCSclassforsendingmail
32
DATA:lo_bcsTYPEREFTOcl_bcs,
33
lo_doc_bcsTYPEREFTOcl_document_bcs,
34
lo_senderTYPEREFTOif_sender_bcs,
35
lo_recipientTYPEREFTOif_recipient_bcs,
36
lv_subjectTYPEso_obj_des.
37
38
*DataDeclaration
39
DATA:lfd_xstringTYPExstring,
40
lfd_objidTYPEw3objid,
41
lv_obkeyTYPEwwwdatatab,
42
lt_mime_rawTYPESTANDARDTABLEOFw3mime,
43
ls_mime_rawTYPEw3mime.
44
45
46
*ImporttheImageFile,thesearemaintainedintransactionSMW0
47
lv_obkeyobjid='ZUCT_ROUND_LOGO'.
48
lv_obkeyrelid='MI'.
49
50
CALLFUNCTION'WWWDATA_IMPORT'
51
EXPORTING
52
key=lv_obkey
53
TABLES
54
mime=lt_mime_raw
55
EXCEPTIONS
56
wrong_object_type=1
57
import_error=2
58
OTHERS=3.
59
60
*...buildalongxstring
61
IFsysubrcEQ0.
62
LOOPATlt_mime_rawINTOls_mime_raw.
63
CONCATENATElfd_xstringls_mime_rawlineINTOlfd_xstringINBYTEMODE.
64
ENDLOOP.
65
ENDIF.
66
67
*...splitxstringintolt_solixtable(whichisneedforemail)
68
CLEARgr_xstr.
69
lv_obj_len=xstrlen(lfd_xstring).
70
lv_graphic_length=xstrlen(lfd_xstring).
71
gr_xstr=lfd_xstring(lv_obj_len).
72
73
lv_offset=0.
74
lv_length=255.
75
76
CLEARlt_solix[].
77
WHILElv_offset<lv_graphic_length.
78
lv_diff=lv_graphic_lengthlv_offset.
79
IFlv_diff>lv_length.
80
ls_solixline=gr_xstr+lv_offset(lv_length).
81
ELSE.
82
ls_solixline=gr_xstr+lv_offset(lv_diff).
83
ENDIF.
84
APPENDls_solixTOlt_solix.
85
ADDlv_lengthTOlv_offset.
86
ENDWHILE.
87
88
*AttachimagetoHTMLbody
89
lv_filename='UCT_LOGO.gif'.
90
lv_content_id='UCT_LOGO.gif'.
91
92
CREATEOBJECTlo_mime_helper.
93
CALLMETHODlo_mime_helper>add_binary_part
94
EXPORTING
95
content=lt_solix"Xstringintableform
96
filename=lv_filename"filenametobegiventoimage
97
extension='GIF'"typeoffile
98
description='GraphicinGIFformat'"description
99
content_type='image/gif'"contenttype/Mimetype.Ifmimetypenotpresentinsystemthenneedtoaddthroughtcode:SMW0
100
length=lv_obj_len"lengthofimage
101
content_id=lv_content_id."contentidwouldbeusedinhtmlpart
102
103
*...createtheHTMLcontentforthebodyoftheemail
104
REFRESHlt_soli[].
105
106
CLEARls_soli.
107
ls_soli='<htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:xfa="http://www.xfa.org/schema/xfatemplate/2.1/"><head></head>'.
108
APPENDls_soliTOlt_soli.
109
110
CLEARls_soli.
111
ls_soli='<body>'.
112
APPENDls_soliTOlt_soli.
113
114
CLEARls_soli.
115
CONCATENATE'<p>DearWarren<br>'''INTOls_soliSEPARATEDBYspace.
116
APPENDls_soliTOlt_soli.
117
118
CLEARls_soli.
119
ls_soli='<br><imgalt="companylogo"src="cid:UCT_LOGO.gif"/><br>'.
120
APPENDls_soliTOlt_soli.
121
122
CLEARls_soli.
123
CONCATENATE'<br>Regards</p></body>''</html>'INTOls_soliSEPARATEDBYspace.
124
APPENDls_soliTOlt_soli.
125
126
*...settheHTMLwithdescription
127
CALLMETHODlo_mime_helper>set_main_html
128
EXPORTING
129
content=lt_soli
130
filename='message.htm'"filenameforHMTLform
131
description='Emailmessage'."Title
132
133
"CreateHTMLusingBCSclassandattachhtmlandimageparttoit.
134
lv_subject='Thisisatestemailforincludinggraphics'."subject
135
lo_doc_bcs=cl_document_bcs=>create_from_multirelated(
136
i_subject=lv_subject
137
i_multirel_service=lo_mime_helper).
138
139
lo_bcs=cl_bcs=>create_persistent().
140
141
"CreateDocument
142
lo_bcs>set_document(i_document=lo_doc_bcs).
143
144
"createSender
145
lo_sender=cl_cam_address_bcs=>create_internet_address('warren.eiserman@uct.ac.za').
146
147
*Setsender
148
lo_bcs>set_sender(
149
EXPORTING
150
i_sender=lo_sender).
151
152
"CreateRecipient
153
lo_recipient=cl_cam_address_bcs=>create_internet_address(i_address_string='warren.eiserman@uct.ac.za').
154
lo_bcs>add_recipient(i_recipient=lo_recipient).
155
156
lo_bcs>send().
157
COMMITWORKANDWAIT.