ABAP发送邮件(含EXCEl附件)

邮箱配置请见SAP系统配置SMPT邮箱_Nathan的博客-CSDN博客_sap 邮件配置SAP系统配置SMPT邮箱首先要获取可以使用发送协议SMTP的邮件服务器地址,以及一个用于服务器验证的邮箱地址及其密码。1,登陆SAP系统进入事务码RZ10,通过以下路径可以查看当前可用的参数文件,通过搜索帮助带出文件名可自动带出活动的版本填入参数文件名选择扩展维护单击修改,这里我们需要填入两个参数参数:is/SMTP/virt_host_0 值:*:25;参数:ic...https://blog.csdn.net/Sundam/article/details/104967748

*&---------------------------------------------------------------------*
*& Form FRM_SENDMAIL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_SENDMAIL .

  DATALV_DOCUMENT_DATA TYPE SODOCCHGI1,
        GT_CONTENT_TXT   TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
        GT_PACKING_LIST  TYPE TABLE OF SOPCKLSTI1 WITH HEADER LINE,
        GT_RECEIVERS     TYPE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
        LC_MAIL_ATTACH   TYPE STRING,
        GT_CONTENT_HEX   TYPE STANDARD TABLE OF SOLIX WITH HEADER LINE,
        GT_OBJECT_HEADER TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
        LC_MAIL_XATTACH  TYPE XSTRING,
        LV_SENT_TO_ALL   TYPE C,
        IT_MAKT          LIKE TABLE OF MAKT WITH HEADER LINE,
        FIR_DATE         TYPE SY-DATUM,
        MIMETYPE         TYPE CHAR64.
  DATAIT_ITAB TYPE TABLE OF ITAB WITH HEADER LINE,
        WA_ITAB TYPE ITAB.

  CONSTANTS:LC_TAB  TYPE C VALUE CL_BCS_CONVERT=>GC_TAB,
            LC_CTRL TYPE C VALUE CL_BCS_CONVERT=>GC_CRLF.

  DATA SY_VLINE TYPE I.
  DATA:
    BUKRS      TYPE  STRING,
    MATNR_MJ   TYPE  STRING,
    EXTWG      TYPE  STRING,
    ERSDA      TYPE  STRING,
    ZMCQS      TYPE  STRING,
    ZMJQS      TYPE  STRING,
    ZMCCN      TYPE  STRING,
    ZMJDM      TYPE  STRING,
    ZBRAN      TYPE  STRING,
    ZTEXT      TYPE  STRING,
    ZCNDW      TYPE  STRING,
    MJCSM      TYPE  STRING,
    MSMRQ      TYPE  STRING,
    MJYSM1     TYPE  STRING,
    MSMRQ1     TYPE  STRING,
    MJYSM2     TYPE  STRING,
    MSMRQ2     TYPE  STRING,
    MJYSM3     TYPE  STRING,
    MSMRQ3     TYPE  STRING,
    MENGE      TYPE  STRING,
    ZYUPS      TYPE  STRING,
    ZFLAG1     TYPE  STRING,
    MJCSM_LJ   TYPE  STRING,
    MJCSY_PS   TYPE  STRING,
    MJCSY_SL   TYPE  STRING,
    MATNR_CP   TYPE  STRING,
    MAKTX      TYPE  STRING,
    MJCCP_SL   TYPE  STRING,
    NETWR      TYPE  STRING,
    ZFLAG      TYPE  STRING,
    BUDAT_MKPF TYPE  STRING
    
.

  CLEAR GT_ZTMM16[].
  SELECT INTO CORRESPONDING FIELDS OF TABLE GT_ZTMM16 FROM ZTMM16
    
WHERE BUKRS  P_BUKRS
      
AND ZBRAN IN S_ZBRAN
      
.

  IF GT_ZTMM16[] IS NOT INITIAL.

    LV_DOCUMENT_DATA-OBJ_DESCR '模具管理报表.
    LV_DOCUMENT_DATA-PRIORITY '1'.
    LV_DOCUMENT_DATA-OBJ_NAME 'OFFER'.
    LV_DOCUMENT_DATA-OBJ_LANGU SY-LANGU.

*  ****邮件正文信息
    GT_CONTENT_TXT '各位:'.
    APPEND GT_CONTENT_TXT.
    GT_CONTENT_TXT '               '.
    APPEND GT_CONTENT_TXT.
    GT_CONTENT_TXT '附件模具寿命已到期或即将到期,请及时处理!'.
    APPEND GT_CONTENT_TXT.
    GT_CONTENT_TXT '               '.
    APPEND GT_CONTENT_TXT.
    GT_CONTENT_TXT ''.
    APPEND GT_CONTENT_TXT.
    GT_CONTENT_TXT 'Thanks and regards,'.
    APPEND GT_CONTENT_TXT.

    DESCRIBE TABLE GT_CONTENT_TXT LINES SY_VLINE.
    LV_DOCUMENT_DATA-DOC_SIZE  255 SY_VLINE STRLENGT_CONTENT_TXT ).

    GT_PACKING_LIST-TRANSF_BIN SPACE.
    GT_PACKING_LIST-HEAD_START 1.
    GT_PACKING_LIST-HEAD_NUM   .
    GT_PACKING_LIST-BODY_NUM   SY_VLINE.
    GT_PACKING_LIST-BODY_START 1.
    GT_PACKING_LIST-DOC_TYPE   'RAW'.
    APPEND GT_PACKING_LIST.

***收件人信息
    LOOP AT GT_ZTMM16.
      GT_RECEIVERS-RECEIVER   GT_ZTMM16-TELBX .
      GT_RECEIVERS-REC_TYPE   'U'.
      GT_RECEIVERS-NOTIF_READ 'X'.
      GT_RECEIVERS-COM_TYPE   'INT'.
      GT_RECEIVERS-NOTIF_DEL  'X'.
      GT_RECEIVERS-NOTIF_NDEL 'X'.
      APPEND GT_RECEIVERS.
      CLEAR GT_RECEIVERS.
      CLEAR GT_ZTMM16.
    ENDLOOP.

    LOOP AT GT_DATA.
      AT FIRST.
        CONCATENATE
            '模具所在公司LC_TAB
            
'模具编号LC_TAB
            
'系列LC_TAB
            
'模具创建日期LC_TAB
            
'模具产品腔数LC_TAB
            
'模具腔数LC_TAB
            
'产能LC_TAB
            
'模具简码LC_TAB
            
'部门LC_TAB
            
'部门描述LC_TAB
            
'产能单位LC_TAB
            
'模具设计寿命(啤数)' LC_TAB
            
'初始设计寿命日期LC_TAB
            
'模具延长设计寿命1(啤数)' LC_TAB
            
'延长设计寿命1日期LC_TAB
            
'模具延长设计寿命2(啤数)' LC_TAB
            
'延长设计寿命2日期LC_TAB
            
'模具延长设计寿命3(啤数)' LC_TAB
            
'延长设计寿命3日期LC_TAB
            
'累计数量(2019111号之后)LC_TAB
            
'期初已使用啤数LC_TAB
            
'模具是否归属客户LC_TAB
            
'模具累计生产啤数LC_TAB
            
'剩余寿命(啤数)LC_TAB
            
'剩余寿命(数量)LC_TAB
            
'产品编码LC_TAB
            
'产品名称LC_TAB
            
'模具对应物料总计划数量LC_TAB
            
'模具累计生产啤数占比(%LC_TAB
            
'不启用标识LC_TAB
            
'最后一次使用日期LC_CTRL
         
INTO LC_MAIL_ATTACH.
      ENDAT.

      CLEAR  BUKRS  .
      CLEAR MATNR_MJ .
      CLEAR  EXTWG  .
      CLEAR  ERSDA  .
      CLEAR  ZMCQS  .
      CLEAR  ZMJQS  .
      CLEAR  ZMCCN  .
      CLEAR  ZMJDM  .
      CLEAR  ZBRAN  .
      CLEAR  ZTEXT  .
      CLEAR  ZCNDW  .
      CLEAR  MJCSM  .
      CLEAR  MSMRQ  .
      CLEAR MJYSM1 .
      CLEAR MSMRQ1 .
      CLEAR MJYSM2 .
      CLEAR MSMRQ2 .
      CLEAR MJYSM3 .
      CLEAR MSMRQ3 .
      CLEAR  MENGE  .
      CLEAR  ZYUPS  .
      CLEAR ZFLAG1 .
      CLEAR MJCSM_LJ .
      CLEAR MJCSY_PS .
      CLEAR MJCSY_SL .
      CLEAR MATNR_CP .
      CLEAR  MAKTX  .
      CLEAR MJCCP_SL .
      CLEAR NETWR .
      CLEAR  ZFLAG  .
      CLEAR BUDAT_MKPF .

      BUKRS      GT_DATA-BUKRS  .
      MATNR_MJ   GT_DATA-MATNR_MJ  .
      EXTWG      GT_DATA-EXTWG  .
      ERSDA      GT_DATA-ERSDA  .
      ZMCQS      GT_DATA-ZMCQS  .
      ZMJQS      GT_DATA-ZMJQS  .
      ZMCCN      GT_DATA-ZMCCN  .
      ZMJDM      GT_DATA-ZMJDM  .
      ZBRAN      GT_DATA-ZBRAN  .
      ZTEXT      GT_DATA-ZTEXT  .
      ZCNDW      GT_DATA-ZCNDW  .
      MJCSM      GT_DATA-MJCSM  .
      MSMRQ      GT_DATA-MSMRQ  .
      MJYSM1     GT_DATA-MJYSM1  .
      MSMRQ1     GT_DATA-MSMRQ1  .
      MJYSM2     GT_DATA-MJYSM2  .
      MSMRQ2     GT_DATA-MSMRQ2  .
      MJYSM3     GT_DATA-MJYSM3  .
      MSMRQ3     GT_DATA-MSMRQ3  .
      MENGE      GT_DATA-MENGE  .
      ZYUPS      GT_DATA-ZYUPS  .
      ZFLAG1     GT_DATA-ZFLAG1  .
      MJCSM_LJ   GT_DATA-MJCSM_LJ  .
      MJCSY_PS   GT_DATA-MJCSY_PS  .
      MJCSY_SL   GT_DATA-MJCSY_SL  .
      MATNR_CP   GT_DATA-MATNR_CP  .
      MAKTX      GT_DATA-MAKTX  .
      MJCCP_SL   GT_DATA-MJCCP_SL  .
      NETWR      GT_DATA-NETWR  .
      ZFLAG      GT_DATA-ZFLAG  .
      BUDAT_MKPF GT_DATA-BUDAT_MKPF  .

      CONCATENATE LC_MAIL_ATTACH
              BUKRS   LC_TAB
              MATNR_MJ   LC_TAB
              EXTWG   LC_TAB
              ERSDA   LC_TAB
              ZMCQS   LC_TAB
              ZMJQS   LC_TAB
              ZMCCN   LC_TAB
              ZMJDM   LC_TAB
              ZBRAN   LC_TAB
              ZTEXT   LC_TAB
              ZCNDW   LC_TAB
              MJCSM   LC_TAB
              MSMRQ   LC_TAB
              MJYSM1  LC_TAB
              MSMRQ1  LC_TAB
              MJYSM2  LC_TAB
              MSMRQ2  LC_TAB
              MJYSM3  LC_TAB
              MSMRQ3  LC_TAB
              MENGE   LC_TAB
              ZYUPS   LC_TAB
              ZFLAG1  LC_TAB
              MJCSM_LJ  LC_TAB
              MJCSY_PS  LC_TAB
              MJCSY_SL  LC_TAB
              MATNR_CP  LC_TAB
              MAKTX   LC_TAB
              MJCCP_SL  LC_TAB
              NETWR   LC_TAB
              ZFLAG   LC_TAB
              BUDAT_MKPF  LC_CTRL
         
INTO LC_MAIL_ATTACH.

      CLEAR GT_DATA .
    ENDLOOP.

    MIMETYPE 'APPLICATION/MSEXCEL;CHARSET=UTF-16LE'.
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
      EXPORTING
        TEXT     LC_MAIL_ATTACH
        MIMETYPE 
MIMETYPE
*       ENCODING =
      IMPORTING
        BUFFER   LC_MAIL_XATTACH
      
EXCEPTIONS
        FAILED   1
        OTHERS   2.

    IF SY-SUBRC 0.
      CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE LC_MAIL_XATTACH INTO LC_MAIL_XATTACH IN BYTE MODE.
    ENDIF.

    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
        BUFFER     LC_MAIL_XATTACH
*       APPEND_TO_TABLE       = ' '
*   IMPORTING
*       OUTPUT_LENGTH         =
      TABLES
        BINARY_TAB GT_CONTENT_HEX.

    GT_OBJECT_HEADER '寿命到期模具'.
    APPEND GT_OBJECT_HEADER.

    DESCRIBE TABLE GT_CONTENT_HEX LINES SY_VLINE.

    GT_PACKING_LIST-TRANSF_BIN 'X'.
    GT_PACKING_LIST-HEAD_START .
    GT_PACKING_LIST-HEAD_NUM   =  .
    GT_PACKING_LIST-BODY_START 1.
    GT_PACKING_LIST-BODY_NUM   SY_VLINE.
    GT_PACKING_LIST-DOC_TYPE   'XLS'.
    GT_PACKING_LIST-DOC_SIZE   SY_VLINE * 255.
    GT_PACKING_LIST-OBJ_NAME   '寿命到期模具'.
    GT_PACKING_LIST-OBJ_DESCR  GT_PACKING_LIST-OBJ_NAME.
    APPEND GT_PACKING_LIST.

    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        DOCUMENT_DATA              LV_DOCUMENT_DATA
        PUT_IN_OUTBOX              
'X'
        COMMIT_WORK                'X'
      IMPORTING
        SENT_TO_ALL                LV_SENT_TO_ALL
*       NEW_OBJECT_ID              =
      TABLES
        PACKING_LIST               GT_PACKING_LIST[]
        OBJECT_HEADER              
GT_OBJECT_HEADER[]
*       CONTENTS_BIN               =
        CONTENTS_TXT               GT_CONTENT_TXT[]
        CONTENTS_HEX               
GT_CONTENT_HEX[]
*       OBJECT_PARA                =
*       OBJECT_PARB                =
        RECEIVERS                  GT_RECEIVERS[]
      
EXCEPTIONS
*       TOO_MANY_RECEIVERS         = 1
        DOCUMENT_NOT_SENT          1
*       DOCUMENT_TYPE_NOT_EXIST    = 3
        OPERATION_NO_AUTHORIZATION 2
        PARAMETER_ERROR            3
        X_ERROR                    4
        ENQUEUE_ERROR              5
        OTHERS                     6.

  ENDIF.

ENDFORM.

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值