SAP ABAP 发邮件方法(OO)

1968人阅读 评论(0) 收藏 举报
*&---------------------------------------------------------------------*
*& Report  ZSENDEMAIL08
*&
*&---------------------------------------------------------------------*

REPORT  zsendemail08.

CONSTANTS:
  gc_tab  TYPE c VALUE cl_bcs_convert=>gc_tab,  "CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
  gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf. "CL_ABAP_CHAR_UTILITIES=>CR_LF

PARAMETERS mailto TYPE ad_smtpadr DEFAULT 'justin.ding@usisz.com.cn'收件人

DATA send_request   TYPE REF TO cl_bcs.
DATA document       TYPE REF TO cl_document_bcs.
DATA recipient      TYPE REF TO if_recipient_bcs.
DATA bcs_exception  TYPE REF TO cx_bcs.

DATA main_text      TYPE bcsy_text.
DATA binary_content TYPE solix_tab.
DATA size           TYPE so_obj_len.
DATA sent_to_all    TYPE os_boolean.


START-OF-SELECTION.

  PERFORM create_content.
  PERFORM send.

*&---------------------------------------------------------------------*
*&      Form  create_content
*&---------------------------------------------------------------------*
Create Example Content
1) Write example text into string
2) convert this string to solix_tab
*----------------------------------------------------------------------*
FORM create_content.

  DATA lv_string TYPE string.
  DATA ls_t100   TYPE t100.

--------------------------------------------------------------
as example content we use some system messages out of t100
get them for all installed languages from db
and write one line for each language into the spread sheet
columns are separated by TAB and each line ends with CRLF

  CONCATENATE 'This Is Just Example Text!'
              gc_crlf gc_crlf
              INTO lv_string.

  DO 10 TIMES.
    CONCATENATE lv_string
                '1111111111111111111111111111111111111111111111111111111111111' gc_tab
                '2222222222222222222222222222222222222222222222222222222222222' gc_tab
                '3333333333333333333333333333333333333333333333333333333333333' gc_tab
                'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' gc_tab
                'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' gc_tab
                'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' gc_tab
                'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' gc_tab
                'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' gc_tab
                'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' gc_tab
                'ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg' gc_tab
                'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh' gc_tab
                'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' gc_tab
                'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj' gc_tab
                'kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' gc_crlf
                INTO lv_string.
  ENDDO.
--------------------------------------------------------------
convert the text string into UTF-16LE binary data including
byte-order-mark. Mircosoft Excel prefers these settings
all this is done by new class cl_bcs_convert (see note 1151257)

  TRY.
      cl_bcs_convert=>string_to_solix(
        EXPORTING
          iv_string   lv_string
          iv_codepage '4103'  "suitable for MS Excel, leave empty
          iv_add_bom  'X'     "for other doc types
        IMPORTING
          et_solix  binary_content
          ev_size   size ).
    CATCH cx_bcs.
      MESSAGE e445(so).
  ENDTRY.

ENDFORM                   "create_content

*---------------------------------------------------------------
NOTES:
*---------------------------------------------------------------
UTF-16LE including the BOM (Byte order mark)
is preferred by Microsoft Excel. If you want to create
other binary content you may choose another codepage (e.g.
'4110' (UTF-8) which is standard for e-mails).
Find SAP codepage names in the drop down list
for the codepage setting of node SMTP in transaction SCOT.
Or: leave iv_codepage and iv_add_bom empty. Then the target
codepage is set according to SAPconnect settings
*
Important:
SAP neither guarantees that the attachment created
by this report can be opened by all Excel Versions nor
that it can be opened by any 3rd party software at all

*&---------------------------------------------------------------------*
*&      Form  send
*&---------------------------------------------------------------------*
FORM send.

  TRY.

    -------- create persistent send request ------------------------
      send_request cl_bcs=>create_persistent( ).

    -------- create and set document with attachment ---------------
    create document object from internal table with text
      APPEND 'Hello world!' TO main_text.                   邮件内容
      document cl_document_bcs=>create_document(
        i_type    'RAW'
        i_text    main_text
        i_subject 'Test Created By BCS_EXAMPLE_7' ).      邮件主题名

    add the spread sheet as attachment to document object
      document->add_attachment(
        i_attachment_type    'xls'                        附件格式
        i_attachment_subject 'ExampleSpreadSheet'         attachment name
        i_attachment_size    size                         "附件大小
        i_att_content_hex    binary_content ).            "附件内容

    add document object to send request
      send_request->set_document( document ).

    --------- add recipient (e-mail address) -----------------------
    create recipient object
      recipient cl_cam_address_bcs=>create_internet_address( mailto ).

    add recipient object to send request
      send_request->add_recipient( recipient ).

    ---------- send document ---------------------------------------
      sent_to_all send_request->send( i_with_error_screen 'X' ).

      COMMIT WORK.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode 'INT'
                    WITH output 'X'
                    AND RETURN.
      IF sent_to_all IS INITIAL.
        MESSAGE i500(sbcoms) WITH mailto.
      ELSE.
        MESSAGE s022(so).
      ENDIF.
  ------------ exception handling ----------------------------------
  replace this rudimentary exception handling with your own one !!!
    CATCH cx_bcs INTO bcs_exception.
      MESSAGE i865(so) WITH bcs_exception->error_type.
  ENDTRY.

ENDFORM                   "send


查看评论

String类

介绍String类的初始化 String类的各种方法 String类的各种应用实例
  • 2017年03月27日 10:26

SAP-ABAP程序发送邮件

1. 变量定义: 类: CL_BCS – Business Communication Service, 发送邮件主要用到的功能类, 包括创建发送请求, 添加发送内容,添加发送地址, 到最终...
  • zhongguomao
  • zhongguomao
  • 2015-05-21 14:23:47
  • 873

简单SAP ABAP发送邮件示例代码

REPORT Z_WUWEI_0001. *类: CL_BCS 发送邮件主要用到的功能类, 包括创建发送请求, 添加发送内容,添加发送地址, 到最终的发送指令发出. *类: CL_DOCUMENT...
  • szlaptop
  • szlaptop
  • 2013-01-08 15:15:27
  • 5427

ABAP 发送邮件的两种方式

第一种:Call the FM to post the message to SAPMAIL, CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' C...
  • ERP_TOP_DD
  • ERP_TOP_DD
  • 2015-12-11 14:11:48
  • 3138

abap写发送邮件程序

最近项目中有需求要通过ABAP开发往外网发邮件,上网查了一些资料,下面是开发过程中整理的一些资料及代码,希望对需要的兄弟有帮助。 ABAP发邮件需要两大块:一是Basis配置邮件服务器,二是ABAP写...
  • champaignwolf
  • champaignwolf
  • 2015-05-14 10:05:35
  • 5113

SAP ABAP 发邮件方法(OO)

*&---------------------------------------------------------------------* *& Report  ZSENDEMAIL08 *...
  • zhongguomao
  • zhongguomao
  • 2015-07-10 10:11:56
  • 1968

SAP 工单 状态 变化

RTD 建立 生产订单创建时的状态,表明订单处于刚刚创建时点,不允许做后续发料,确认等操作。 PREL 部分释放 当对生产订单做部分下达时的状态,如仅下达部分工序时。 REL 已释放 当生...
  • zhusonglai
  • zhusonglai
  • 2013-11-19 10:34:40
  • 2612

一个很强的基于面向对象的SAP邮件发送

1. OO程序,能够发送外部邮件。 REPORT  Z_MAIL_TEST3. PARAMETERS: p_mail TYPE ad_smtpadr OBLIGATORY. DATA: ...
  • lqq417
  • lqq417
  • 2011-11-17 10:57:25
  • 949

ABAP模块-任意report作为附件以邮件形式发送

ABAP模块-任意report作为附件以邮件形式发送
  • SAPmatinal
  • SAPmatinal
  • 2015-03-15 14:20:42
  • 1148

邮件回执

如果你要所有的邮件都有回执,方法Tools->Options->Email Options 按钮->Tracking Options 按钮->Delivery receipt. 如果你只要某封信有回执...
  • renjun24
  • renjun24
  • 2008-04-15 15:51:00
  • 436
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 507万+
    积分: 7万+
    排名: 33
    博客专栏
    最新评论