设为首页 收藏本站
查看: 1263|回复: 0

[经验分享] 利用SAP Offcie组件实现邮件发送功能

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-9-17 13:20:04 | 显示全部楼层 |阅读模式
  SAP做为自成一体的系统,其开发环境有着丰富的资源,其中就包括发送邮件的SAP Office组件。通过SAP组件,可以实现向Internet发送邮件。 通过 CALL FUNCTION 'SO_OBJECT_SEND' ,就可以实现邮件的发送,下面的代码片断,就举例说明了参数的作用。
        必须说明的是,下面的代码,只是在发送的邮件中提供一个文本类型的附件。大家在使用SAP的Office发送邮件的时候,可以带上上传的文件做为邮件附件,还可以使用ALV的内容做为附件(在标准ALV,工具上有发送邮件)。这些理论上都是可行的,只是小弟还不知道,所以这里只是抛个砖,有玉的请尽管砸过来~~~~~
    data: object_hd_change LIKE sood1 OCCURS 10 WITH HEADER LINE,   " 邮件正文的头信息
        receivers LIKE soos1 OCCURS 10 WITH HEADER LINE,
         packing_list LIKE soxpl OCCURS 10 WITH HEADER LINE,       " 邮件附件的头信息
         objcont LIKE soli OCCURS 10 WITH HEADER LINE,   " 邮件正文
         att_cont LIKE soli OCCURS 10 WITH HEADER LINobject_hd_changeE,  " 邮件附件
         att_head LIKE soli OCCURS 10 WITH HEADER LINE.  " 头行
  data : count TYPE i,length TYPE i.
  data: lc_item1(24) type c.
  data: lc_item2(24) type c.
  data: lc_line_sub(29) type c.
  data: lc_line_sub2(52) type c.
  data: ls_data type string.
  data: li_len type i.
  data: ls_title type string.

  refresh: objcont,receivers,packing_list,
           objcont,att_cont,att_head.

  CLEAR: ATT_CONT-LINE.
  att_cont-line =  '附件文本的标题'.
  ls_title = att_cont-line.
  append att_cont.

* 放入附件内表
    CLEAR: ATT_CONT-LINE.
    ATT_CONT-LINE =  '附件文本内容.
    append att_cont. "如果有行内容,可以append多次

  move  '邮件内容标题' to objcont-line.
  APPEND objcont.

  move 'file' to att_head-line.
  append att_head.

  DESCRIBE TABLE objcont LINES count.
  DESCRIBE FIELD objcont-line LENGTH length IN BYTE MODE .
  object_hd_change-objla = 'E'.              "创建文档使用的语言
  object_hd_change-objnam = 'LIST'.          "文档,文件夹或分配清单的名称
  object_hd_change-objdes = gs_string.       "内容的简短描述CHAR50
  object_hd_change-objsns = 'O'.             "对象:灵敏度  P机密 F功能 O标准
  object_hd_change-objlen = count * length.  "文档内容的大小
  append object_hd_change.

* 接收者
  receivers-recextnam = 'seewood@gmail.com'.
  receivers-recesc = 'U'.          " 地址类型, U: 互联网地址
  APPEND receivers. " 收件人地址

  DESCRIBE TABLE att_cont LINES count.          " 邮件附件总行数
  DESCRIBE FIELD att_cont-line LENGTH length    " 邮件每行的长度
   IN BYTE MODE .
  packing_list-head_start = '1'.           "传输包中的对象表头开始行
  packing_list-body_start = '1'.           "对象包中的对象内容开始行
  packing_list-head_num = '0'.             "在对象包内的对象表头行号
  packing_list-body_num = count * length.  "在对象包内的对象内容行号
  packing_list-objtp = 'RAW'.              "文档类别代码

  packing_list-OBJDES = gs_string.
  packing_list-OBJNAM = gs_string.
*  OBJDES OBJNAM
  APPEND packing_list.

* 调用函数发送邮件

  CALL FUNCTION 'SO_OBJECT_SEND'
    EXPORTING
*     New object: General header data
      object_hd_change           = object_hd_change
      object_type               
= 'RAW'       " RAW  SAP编辑程序文件
      SENDER                     = sy-uname    " 发送者用户名
    TABLES
      objcont                    = objcont      " Content
*     Recipient table with send attributes
      receivers                  = receivers      " 接收人地址
      packing_list            = packing_list   " 邮件内容
      att_cont                   = att_cont       " 附件
      ATT_HEAD           = att_head       " 标题
    EXCEPTIONS
      active_user_not_exist      = 1
      communication_failure      
= 2
      component_not_available   
= 3
      folder_not_exist           
= 4
      folder_no_authorization   
= 5
      forwarder_not_exist        
= 6
      note_not_exist            
= 7
      object_not_exist           
= 8
      object_not_sent            
= 9
      object_no_authorization   
= 10
      object_type_not_exist      
= 11
      operation_no_authorization
= 12
      owner_not_exist            
= 13
      parameter_error            
= 14
      substitute_not_active      
= 15
      substitute_not_defined     
= 16
      system_failure            
= 17
      too_much_receivers         
= 18
      user_not_exist            
= 19
      originator_not_exist      
= 20
      x_error                    
= 21
      
OTHERS                     = 22.
  PR_SUBRC = SY-SUBRC.
  IF SY-SUBRC = 0.
    COMMIT WORK.
  ENDIF.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-114992-1-1.html 上篇帖子: SAP我来了 下篇帖子: .NET连接SAP系统专题:C#调用RFC抓取SAP返回的异常(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表