DATA: G_AUTOF TYPE CHAR4.
DATA SEND_REQUEST TYPE REF TO CL_BCS. "CL_BCS 發送郵件主要用到的功能類, 包括創建發送請求, 添加發送內容,添加發送地址, 到最終的發送指令發出.
DATA DOCUMENT TYPE REF TO CL_DOCUMENT_BCS." 用來放置發送的內容.
DATA G_TEXT TYPE SOLI_TAB.
DATA G_CONTENT TYPE STRING.
DATA MAILTO TYPE AD_SMTPADR.
DATA RECIPIENT TYPE REF TO CL_CAM_ADDRESS_BCS.
DATA L_BCS_EXCEPTION TYPE REF TO CX_DOCUMENT_BCS.
DATA L_SEND_EXCEPTION TYPE REF TO CX_SEND_REQ_BCS.
DATA L_ADDR_EXCEPTION TYPE REF TO CX_ADDRESS_BCS.
DATA: IT_HEX1 TYPE SOLIX_TAB .
DATA: LV_XML TYPE XSTRING.
DATA:T_MAILHEX TYPE SOLIX_TAB.
DATA:I_RECORD TYPE SOLIX_TAB.
DATA:FILELEN TYPE I.
DATA: G_OVERDAT LIKE SY-DATUM.
DATA: BEGIN OF WA_ATTACH,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
BANFN LIKE EBAN-BANFN,
BNFPO LIKE EBAN-BNFPO,
TXZ01 LIKE ZMMT116-TXZ01,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
OVERDAT LIKE ZMMT116-OVERDAT,
CRNAM LIKE ZMMT116-CRNAM,
ERNAM LIKE EKKO-ERNAM,
END OF WA_ATTACH.
DATA: GT_ATTACH LIKE WA_ATTACH OCCURS 0 WITH HEADER LINE.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE GT_ATTACH
FROM ****
WHERE ************.
TRY.
" 郵件正文
G_CONTENT = ''.
APPEND G_CONTENT TO G_TEXT.
G_CONTENT = 'DEAR SIR:' .
APPEND G_CONTENT TO G_TEXT.
G_CONTENT = ''.
APPEND G_CONTENT TO G_TEXT.
G_CONTENT = '...........................'.
APPEND G_CONTENT TO G_TEXT.
G_CONTENT = ''.
APPEND G_CONTENT TO G_TEXT.
APPEND G_CONTENT TO G_TEXT.
G_CONTENT = 'THANKS.'.
APPEND G_CONTENT TO G_TEXT.
* 創建發送請求
SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = 'RAW'
I_TEXT = G_TEXT
I_IMPORTANCE = '1'
I_SUBJECT = '************' "郵件主題
).
*---------- 創建郵件的附件
*----內表作為郵件附件發送 BEGIN
DATA: TMPSTR TYPE STRING .
CLEAR: TMPSTR,I_RECORD,I_RECORD[].
DATA: TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
ENTER(2) TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF,
N TYPE I.
DATA: BEGIN OF HEADTAB OCCURS 0 ,
LENGTH TYPE I ,
DECIMALS TYPE I,
TYPE_KIND TYPE C,
NAME(30) TYPE C,
END OF HEADTAB.
DATA DESCR_REF TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS: <COMP_WA> TYPE ABAP_COMPDESCR ,
<F_FIELD> ,
<F_T_ATTACH> TYPE ANY .
DATA:STR TYPE STRING,
STR2 TYPE STRING ,
TEXT1 TYPE C.
DESCR_REF ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( GT_ATTACH ). "導出表頭內容BANFN BNFPO MATNR TXZ01 MEINS EKGRP MENGE等等
LOOP AT DESCR_REF->COMPONENTS ASSIGNING <COMP_WA>.
MOVE-CORRESPONDING <COMP_WA> TO HEADTAB.
APPEND HEADTAB.
ENDLOOP.
DESCRIBE TABLE HEADTAB LINES N.
LOOP AT GT_ATTACH ASSIGNING <F_T_ATTACH>.
DO N TIMES.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <F_T_ATTACH> TO <F_FIELD>.
STR = <F_FIELD>.
READ TABLE HEADTAB INDEX SY-INDEX.
IF HEADTAB-TYPE_KIND = 'I' OR HEADTAB-TYPE_KIND = 'P'
OR HEADTAB-TYPE_KIND = 'F'.
SEARCH STR FOR '-'.
IF SY-SUBRC = 0 AND SY-FDPOS <> 0.
SPLIT STR AT '-' INTO STR TEXT1.
CONDENSE STR.
CONCATENATE '-' STR INTO STR.
ELSE.
CONDENSE STR.
ENDIF.
ELSE.
* SHIFT STR LEFT DELETING LEADING '0' .
ENDIF.
CONCATENATE STR2 TAB STR INTO STR2.
ENDDO.
SHIFT STR2.
CONCATENATE TMPSTR STR2 ENTER INTO TMPSTR.
CLEAR STR2.
ENDLOOP.
CONCATENATE '採購單號' TAB
'採購單項目' TAB
'請購單號' TAB
'請購單項目' TAB
'物料說明' TAB
'供應商代碼' TAB
'供應商名稱' TAB
'完工日期' TAB
'開單人' TAB
'需求人' ENTER
TMPSTR INTO TMPSTR.
DATA:TMPBUFFER TYPE XSTRING.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = TMPSTR
MIMETYPE = '"TEXT/HTML; CHARSET=BIG5"'
* ENCODING = '8400'
IMPORTING
BUFFER = TMPBUFFER
EXCEPTIONS
FAILED = 1
OTHERS = 2.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = TMPBUFFER
APPEND_TO_TABLE = ''
IMPORTING
OUTPUT_LENGTH = FILELEN
TABLES
BINARY_TAB = I_RECORD.
APPEND LINES OF I_RECORD TO T_MAILHEX.
*----內表作為郵件附件發送 END
DOCUMENT->ADD_ATTACHMENT( "添加附件
I_ATTACHMENT_TYPE = 'XLS' " 附件格式
I_ATTACHMENT_SUBJECT = '*****************' " ATTACHMENT NAME
" I_ATTACHMENT_SIZE = SIZE "附件大小
I_ATT_CONTENT_HEX = T_MAILHEX ).
CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).
* CALL METHOD L_SEND_REQUEST->SET_SENDER
* EXPORTING
* I_SENDER = L_SENDER.
"郵件地址
CLEAR :MAILTO.
MAILTO = '736998669@qq.com'.
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( MAILTO ).
SEND_REQUEST->ADD_RECIPIENT( RECIPIENT ).
SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).
CALL METHOD SEND_REQUEST->SEND( ).
COMMIT WORK.
CATCH CX_DOCUMENT_BCS INTO L_BCS_EXCEPTION.
CATCH CX_SEND_REQ_BCS INTO L_SEND_EXCEPTION.
CATCH CX_ADDRESS_BCS INTO L_ADDR_EXCEPTION.
ENDTRY.
ABAP 發送郵件
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 一、郵件分享 1、iOS系統自帶郵件設置郵箱(此處以QQ郵箱為例) a.打開電腦,登錄郵箱(以QQ郵箱為例),進入...
- 之前寫過用標準庫使用Python Smtplib 和email發送郵件,感覺很繁瑣,久了不用之后便忘記了。前幾天看...
- 1.從http://glob.com.au/sendmail/下載sendmail.zip 2.解壓到C:下,例如...
- 第一,是技術救助,接收的都是技術人員,那么一定要簡潔明了,標題要簡單,很容易使人明白,對于問題最好一句話就能說明問...