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