【测试】ABAP发送HTML格式邮件FM
生活随笔
收集整理的這篇文章主要介紹了
【测试】ABAP发送HTML格式邮件FM
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ABAP郵件發(fā)送Function
?
具體如何實現(xiàn)我們看如下FM:
輸入?yún)?shù):
I_SUBJECT:內(nèi)容的簡短描述
IT_MESSAGE_BODY:郵件主體部分(convert string to table)
IT_ATTACHMENTS:附件內(nèi)容
I_SENDER_MAIL:發(fā)送者的電子郵件地址
I_ATTMSG_CHECK:郵件類型
?
輸出參數(shù):
E_RESULT:Boolean Variable (X=True, -=False, Space=Unknown)
?
傳輸內(nèi)表:
RECIPIENTS:接收者的電子郵件地址(可多人)
?
Source Code:
FUNCTION?ZCMF_SEND_MAIL. *"---------------------------------------------------------------------- *"??IMPORTING *"?????REFERENCE(I_SUBJECT)?TYPE??SO_OBJ_DES *"?????REFERENCE(IT_MESSAGE_BODY)?TYPE??BCSY_TEXT *"?????REFERENCE(IT_ATTACHMENTS)?TYPE??RMPS_T_POST_CONTENT?OPTIONAL *"?????VALUE(I_SENDER_MAIL)?TYPE??ADR6-SMTP_ADDR?OPTIONAL *"?????VALUE(I_ATTMSG_CHECK)?TYPE??ZEHRATTYP?OPTIONAL *"??EXPORTING *"?????REFERENCE(E_RESULT)?TYPE??BOOLEAN *"??TABLES *"??????RECIPIENTS?STRUCTURE??ADR6?OPTIONAL *"----------------------------------------------------------------------*Data?DeclarationDATA:?LO_SENDER????????TYPE?REF?TO?IF_SENDER_BCS?VALUE?IS?INITIAL,L_RECIPIENT_MAIL?TYPE?ADR6-SMTP_ADDR.DATA?:?ITAB?TYPE?TABLE?OF?SVAL,LS_ITAB?TYPE?SVAL,I_RETURN.DATA: L_MSG_TYPE?TYPE?SO_OBJ_TP,LO_SEND_REQUEST?TYPE?REF?TO?CL_BCS?VALUE?IS?INITIAL.DATA:?LX_DOCUMENT_BCS?TYPE?REF?TO?CX_DOCUMENT_BCS?VALUE?IS?INITIAL,ATTACHMENT_SUBJECT?TYPE?SO_OBJ_DES.DATA:?LO_RECIPIENT?TYPE?REF?TO?IF_RECIPIENT_BCS?VALUE?IS?INITIAL.DATA:?LS_RECIPIENT?LIKE?LINE?OF?RECIPIENTS,LS_ATTACHMENT?LIKE?LINE?OF?IT_ATTACHMENTS.CLEAR:?E_RESULT. *?Sender?mail?settingIF?I_SENDER_MAIL?IS?INITIAL.I_SENDER_MAIL?=?'xiuxianhai@xxx.com'.ENDIF.CASE?I_ATTMSG_CHECK.WHEN?'X'.?"?CLEAR:L_MSG_TYPE.WHEN?'H'.L_MSG_TYPE?=?'HTML'.?????"?HTML格式WHEN?OTHERS.L_MSG_TYPE?=?'RAW'.?????"?普通格式ENDCASE.*Prepare?Mail?ObjectCLASS?CL_BCS?DEFINITION?LOAD.LO_SEND_REQUEST?=?CL_BCS=>CREATE_PERSISTENT(?).*?Message?body?and?subjectDATA:?LO_DOCUMENT?TYPE?REF?TO?CL_DOCUMENT_BCS?VALUE?IS?INITIAL.LO_DOCUMENT?=?CL_DOCUMENT_BCS=>CREATE_DOCUMENT(I_TYPE?=?L_MSG_TYPEI_TEXT?=??IT_MESSAGE_BODYI_SUBJECT?=?I_SUBJECT?).*Send??attachmentLOOP?AT?IT_ATTACHMENTS?INTO?LS_ATTACHMENT.ATTACHMENT_SUBJECT?=?LS_ATTACHMENT-SUBJECT.TRY.LO_DOCUMENT->ADD_ATTACHMENT(EXPORTINGI_ATTACHMENT_TYPE?=?LS_ATTACHMENT-OBJTPI_ATTACHMENT_SUBJECT?=?ATTACHMENT_SUBJECTI_ATT_CONTENT_HEX?=?LS_ATTACHMENT-CONT_HEX?).CATCH?CX_DOCUMENT_BCS?INTO?LX_DOCUMENT_BCS.ENDTRY.ENDLOOP.*?Pass?the?document?to?send?requestLO_SEND_REQUEST->SET_DOCUMENT(?LO_DOCUMENT?).TRY.IF?I_SENDER_MAIL?IS?NOT?INITIAL.LO_SENDER?=?CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(?I_SENDER_MAIL?).ENDIF. *?Set?senderLO_SEND_REQUEST->SET_SENDER(EXPORTINGI_SENDER?=?LO_SENDER?).CATCH?CX_ADDRESS_BCS.RETURN.ENDTRY. *?Set??recipientsLOOP?AT?RECIPIENTS?INTO?LS_RECIPIENT.IF?LS_RECIPIENT-SMTP_ADDR?IS?NOT?INITIAL.L_RECIPIENT_MAIL?=?LS_RECIPIENT-SMTP_ADDR?.TRY.LO_RECIPIENT?=?CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(?L_RECIPIENT_MAIL?).CATCH?CX_ADDRESS_BCS?.ENDTRY.ENDIF.LO_SEND_REQUEST->ADD_RECIPIENT(EXPORTINGI_RECIPIENT?=?LO_RECIPIENTI_EXPRESS?=?'X'?).ENDLOOP.TRY.CALL?METHOD?LO_SEND_REQUEST->SET_STATUS_ATTRIBUTESEXPORTINGI_REQUESTED_STATUS?=?'E'I_STATUS_MAIL??????=?'E'.*?set?send?immediately?flagLO_SEND_REQUEST->SET_SEND_IMMEDIATELY(?'X'?).*?Send?emailLO_SEND_REQUEST->SEND(EXPORTINGI_WITH_ERROR_SCREEN?=?'X'RECEIVINGRESULT?=?E_RESULT?).COMMIT?WORK.WAIT?UP?TO?1?SECONDS.CATCH?CX_SEND_REQ_BCS.E_RESULT?=?''.ENDTRY.ENDFUNCTION.?
實例效果:
總結(jié)
以上是生活随笔為你收集整理的【测试】ABAP发送HTML格式邮件FM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【温故知新】CSS学习笔记(字体样式属性
- 下一篇: 【实用】ABAP邮件发送(HTML+At