SAP 使用ABAP实现邮件发送(一):

SAP 使用ABAP实现邮件发送(一):

*&---------------------------------------------------------------------*
*& Form FRM_DEFINE_MAIL_HEADER
*&---------------------------------------------------------------------*
*& 邮件内容填充
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DEFINE_MAIL_HEADER .
  DATA:LV_TMP_DATE LIKE SY-DATUM.
  DATA:LV_TMP_CHAR(30).
  LV_TMP_DATE = SY-DATUM.
  CONCATENATE 'Overdue Batch  ' SY-DATUM INTO LV_TMP_CHAR.
  GT_OBJECT_HEADER = ''."文本头
  APPEND GT_OBJECT_HEADER.
  GT_CONTENTS_TXT = 'Dear Mr and Miss:'.
  APPEND GT_CONTENTS_TXT.
  GT_CONTENTS_TXT = ' '.
  APPEND GT_CONTENTS_TXT.
  "邮件数据填充
  GT_CONTENTS_TXT = '预算监控报表异常数据:'.
  APPEND GT_CONTENTS_TXT.
  GT_CONTENTS_TXT = ' '.
  APPEND GT_CONTENTS_TXT.
  LOOP AT GT_ALV INTO DATA(LS_ALV).
    GT_CONTENTS_TXT-LINE = "填充你的数据
    APPEND GT_CONTENTS_TXT.
  ENDLOOP.
  GT_CONTENTS_TXT = ' '.
  APPEND GT_CONTENTS_TXT.
  GT_CONTENTS_TXT = LV_TMP_DATE.
  APPEND GT_CONTENTS_TXT.
  DESCRIBE TABLE GT_CONTENTS_TXT LINES GV_TAB_LINES.
  READ TABLE GT_CONTENTS_TXT INDEX GV_TAB_LINES.
  GS_DOC_DATA-DOC_SIZE = ( GV_TAB_LINES - 1 ) * 255 + STRLEN( GT_CONTENTS_TXT ).
********count lines by man context*************
  CLEAR   GT_PACKING_LIST-TRANSF_BIN.
  GT_PACKING_LIST-TRANSF_BIN = 'X'.    "ASCII format/binary format
  GT_PACKING_LIST-HEAD_START = 1.
  GT_PACKING_LIST-HEAD_NUM = 0.
  GT_PACKING_LIST-BODY_START = 1.
  GT_PACKING_LIST-BODY_NUM = GV_TAB_LINES.
  GT_PACKING_LIST-DOC_TYPE = 'RAW'.
  APPEND GT_PACKING_LIST.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SEND_EMAIL_MESSAGE
*&---------------------------------------------------------------------*
*& 设置发送者邮箱地址和接收者的邮箱地址
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_SEND_EMAIL_MESSAGE .
  DATA: LV_SUBRC LIKE SY-SUBRC.
  DATA: LV_SENDER_ADDRESS_TYPE TYPE SOEXTRECI1-ADR_TYP VALUE 'SMTP'.
  DATA:LV_SENDER_ADDRESS TYPE SOEXTRECI1-RECEIVER.
  LV_SENDER_ADDRESS = ''."发送方邮箱地址
*  LV_SENDER_ADDRESS = ''.
* Add the recipients email address
  CLEAR GT_RECEIVERS.
  REFRESH GT_RECEIVERS.
  GT_RECEIVERS-RECEIVER = ''."Email Address "接收方邮箱地址
  GT_RECEIVERS-REC_TYPE = 'U'.    "Internet address
  GT_RECEIVERS-NOTIF_READ = 'X'.
  GT_RECEIVERS-COM_TYPE = 'INT'.
  GT_RECEIVERS-NOTIF_DEL = 'X'.
  GT_RECEIVERS-NOTIF_NDEL = 'X'.
  GT_RECEIVERS-COPY = 'X'.
  APPEND GT_RECEIVERS.
  GT_RECEIVERS-RECEIVER = ''(004)."Email Address
  GT_RECEIVERS-REC_TYPE = 'U'.    "Internet address
  GT_RECEIVERS-NOTIF_READ = 'X'.
  GT_RECEIVERS-COM_TYPE = 'INT'.
  GT_RECEIVERS-NOTIF_DEL = 'X'.
  GT_RECEIVERS-NOTIF_NDEL = 'X'.
  GT_RECEIVERS-COPY = 'X'.
  APPEND GT_RECEIVERS.

*  发送邮件
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
      DOCUMENT_DATA              = GS_DOC_DATA
      PUT_IN_OUTBOX              = 'X'
      SENDER_ADDRESS             = LV_SENDER_ADDRESS
      SENDER_ADDRESS_TYPE        = LV_SENDER_ADDRESS_TYPE
      COMMIT_WORK                = 'X'
    TABLES
      PACKING_LIST               = GT_PACKING_LIST
      OBJECT_HEADER              = GT_OBJECT_HEADER
*     contents_hex               = gt_contents_hex
      CONTENTS_TXT               = GT_CONTENTS_TXT
      RECEIVERS                  = GT_RECEIVERS
    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.

  LV_SUBRC = SY-SUBRC.
  IF LV_SUBRC EQ 0.
    WAIT UP TO 2 SECONDS.
    SUBMIT RSCONN01 WITH MODE = 'INT'
                  WITH OUTPUT = 'X'
                  AND RETURN.
  ENDIF.
ENDFORM.

邮件发送效果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值