SAP 邮件发送
1.********************
- *调用发送邮件函数
- CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
- EXPORTING
- DOCUMENT_DATA = DOC_CHNG
- "subject and description
- PUT_IN_OUTBOX = 'X' "send in_outbox
- TABLES
- PACKING_LIST = OBJPACK
- OBJECT_HEADER = OBJHEAD
- CONTENTS_BIN = OBJBIN "attachments
- CONTENTS_TXT = OBJTXT "mail body
- RECEIVERS = RECLIST "RECEIVE LIST
- EXCEPTIONS
- TOO_MANY_RECEIVERS = 1
- DOCUMENT_NOT_SENT = 2
- OPERATION_NO_AUTHORIZATION = 4
- OTHERS = 99.
- CASE SY-SUBRC.
- WHEN 0.
- * 当执行邮件发送成功后,确认提交,不调用此过程邮件将队列等待直到确认后才正式发送
- * 遇到错误信息输出提示
- SUBMIT RSCONN01
- WITH MODE EQ 'INT'
- AND RETURN.
- MESSAGE S001(00) WITH 'Sent Mail success!'.
- WHEN 1.
- WRITE: / 'No authorization for sending to the specified number',
- 'of recipients'.
- WHEN 2.
- WRITE: / 'Document could not be sent to any recipient'.
- WHEN 4.
- WRITE: / 'No send authorization'.
- WHEN OTHERS.
- WRITE: / 'Error occurred while sending'.
- ENDCASE.
2。********************************
DATA: OBJECT_HD_CHANGE LIKE SOOD1 OCCURS WITH HEADER LINE, " 邮件正文的头信息
RECEIVERS LIKE SOOS1 OCCURS WITH HEADER LINE,
PACKING_LIST LIKE SOXPL OCCURS WITH HEADER LINE, " 邮件附件的头信息
OBJCONT LIKE SOLI OCCURS WITH HEADER LINE, " 邮件正文
ATT_CONT LIKE SOLI OCCURS WITH HEADER LINE, " 邮件附件
ATT_HEAD LIKE SOLI OCCURS WITH HEADER LINE. " 头行 OBJECT_HD_CHANGE-OBJLA = 'E'. "创建文档使用的语言
OBJECT_HD_CHANGE-OBJNAM = 'LIST'. "文档,文件夹或分配清单的名称
OBJECT_HD_CHANGE-OBJDES = TITLE. "内容的简短描述CHAR50
OBJECT_HD_CHANGE-OBJSNS = 'O'. "对象:灵敏度 P机密 F功能 O标准
APPEND OBJECT_HD_CHANGE. LOOP AT REC_NAME.
RECEIVERS-RECEXTNAM = REC_NAME.
RECEIVERS-RECESC = 'U'.
APPEND RECEIVERS. ENDLOOP.
LOOP AT ZOBJCONT.
OBJCONT-LINE = ZOBJCONT-LINE.
APPEND OBJCONT.
ENDLOOP. CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
OBJECT_HD_CHANGE = OBJECT_HD_CHANGE
OBJECT_TYPE = 'RAW' " RAW SAP编辑程序文件
SENDER = SY-UNAME " 发送者用户名
TABLES
OBJCONT = OBJCONT " Content
RECEIVERS = RECEIVERS " 接收人地址
PACKING_LIST = PACKING_LIST " 邮件内容
ATT_CONT = ATT_CONT " 附件
ATT_HEAD = ATT_HEAD " 标题
EXCEPTIONS
ACTIVE_USER_NOT_EXIST =
COMMUNICATION_FAILURE =
COMPONENT_NOT_AVAILABLE =
FOLDER_NOT_EXIST =
FOLDER_NO_AUTHORIZATION =
FORWARDER_NOT_EXIST =
NOTE_NOT_EXIST =
OBJECT_NOT_EXIST =
OBJECT_NOT_SENT =
OBJECT_NO_AUTHORIZATION =
OBJECT_TYPE_NOT_EXIST =
OPERATION_NO_AUTHORIZATION =
OWNER_NOT_EXIST =
PARAMETER_ERROR =
SUBSTITUTE_NOT_ACTIVE =
SUBSTITUTE_NOT_DEFINED =
SYSTEM_FAILURE =
TOO_MUCH_RECEIVERS =
USER_NOT_EXIST =
ORIGINATOR_NOT_EXIST =
X_ERROR =
OTHERS = .
3.**************************
TRY. * 创建发送请求
l_send_request = cl_bcs=>create_persistent( ). * 设定发送内容
l_document = cl_document_bcs=>create_document( i_type = 'RAW'
i_text = i_content[]
I_IMPORTANCE = ''
i_subject = l_subject ).
* 增加发送内容到发送请求
CALL METHOD l_send_request->set_document( l_document ).
* 取得发送者(取得发件人,前提是这个邮箱地址能发邮件,并且不需要密码)
l_uname = sy-uname.
l_sender = cl_sapuser_bcs=>create( l_uname ).
CALL METHOD l_send_request->set_sender
EXPORTING
i_sender = l_sender.
* 设置收件人
LOOP AT it_mailaccept.
CONCATENATE it_mailaccept-name '@XXXXX.COM' INTO i_email.
TRANSLATE i_email TO LOWER CASE.
l_recipient = cl_cam_address_bcs=>create_internet_address( i_email ).
CALL METHOD l_send_request->add_recipient
EXPORTING
i_recipient = l_recipient
i_express = 'X'
i_copy = ' '
i_blind_copy = ' '
i_no_forward = ' '.
ENDLOOP.
* 设置抄送人
LOOP AT it_mailaccept_copy.
CONCATENATE it_mailaccept_copy-name '@XXXXX INTO i_email.
TRANSLATE i_email TO LOWER CASE.
l_recipient = cl_cam_address_bcs=>create_internet_address( i_email ).
CALL METHOD l_send_request->add_recipient
EXPORTING
i_recipient = l_recipient
i_express = 'X'
i_copy = 'X'
i_blind_copy = ' '
i_no_forward = ' '.
ENDLOOP.
*& 立即发送
l_send_request->set_send_immediately( 'X' ).
*& 发送
CALL METHOD l_send_request->send( ).
COMMIT WORK.
CATCH cx_document_bcs INTO l_bcs_exception.
CATCH cx_send_req_bcs INTO l_send_exception.
CATCH cx_address_bcs INTO l_addr_exception.
ENDTRY.
SAP 邮件发送的更多相关文章
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- J2EE 邮件发送那些事儿
距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...
- 结合ABP源码实现邮件发送功能
1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...
- SSH项目里面 忘记密码的邮件发送功能
package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...
- java spring 邮件发送
开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...
- Java邮件发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- c#实现邮件发送链接激活
2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...
- .Net(C#)最简单的邮件发送案例
一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...
随机推荐
- 最简单实用的JQuery实现banner图中的text打字动画效果!!!
下面,就让小博详细介绍如何实现上面GIF实现的banner图中的文字动画效果,最简单实用的方法(鉴于代码量较小,就内嵌在一个HTML文件中了): 首先,我们要在header导入一个jQuery,并新建 ...
- MacOS下免密码ssh登陆
由于配置过程中需要频繁的进行ssh连接到开发服务器执行命令以及通过scp命令向服务器拷贝文件等依赖ssh连接的操作.所以,配置本地环境跟服务器之间的ssh免密码连接可以有效的提升工作效率. ...
- 【beta】阶段 第六次 Scrum Meeting
每日任务 1.本次会议为第六次 Meeting会议: 2.本次会议在周六上午大课间,在陆大楼召开,召开本次会议为15分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item 的ID) ...
- 201521123072《java程序设计》第三周学习总结
201521123072<java程序设计>第三周学习总结 标签: java学习 1. 本周学习总结 2. 书面作业 1,代码阅读 public class Test1 { private ...
- 201521123018 《Java程序设计》第1周学习总结
1. 本章学习总结 *Java程序的特点 *可以跨平台运行 *语言简单 *利用控制台运行java程序 *cmd调出控制台->用javac指令编译源代码->用java指令运行 2. 书面作业 ...
- 201521123085 《Java程序设计》第11周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有 ...
- eclipse : java项目中的web.xml( Deployment Descriptor 部署描述文件 )配置说明
context-param.listener.filter.servlet 首先可以肯定的是,加载顺序与它们在 web.xml 配置文件中的先后顺序无关.即不会因为 filter 写在 listen ...
- layer子层给父层页面元素赋值,以达到向父层页面传值的效果
父层: jsp中: //页面上添加一个隐藏的输入框待用于被子层设置value,从而将子层的数据传递到此页面 <input type="hidden" id="get ...
- vim下处理文档中的\r\n\t字符
问题复现 拿到的文档中包含了大量的\r.\n.\t等字符,形如: \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ ...
- 深入浅出AQS之独占锁模式
每一个Java工程师应该都或多或少了解过AQS,我自己也是前前后后,反反复复研究了很久,看了忘,忘了再看,每次都有不一样的体会.这次趁着写博客,打算重新拿出来系统的研究下它的源码,总结成文章,便于以后 ...