SAP 如何用ABAP实现自动发送外部邮件

声明:以下内容转自老白博客,感谢老白的文章,故转来学习。

SAP可以把一些信息发到外部的Email地址,比如把PO的信息发送给供应商。
实现这个事情主要的问题有两个:配置系统和写ABAP
 
配置系统:(这是470以上系统的配置,如果是47C或者以下,会用到RFC(SM59))
1.设置Profile参数
2.SAP发邮件用户的维护
3.SICF
4.SCOT
5.SOST (查看发送状况)
 
ABAP的编写:
 
 
 
****转载:http://www.sapclub.org/blog/chenying841027/archive/2008/09/25/71141.aspx
 
基本是参考note:455140(Configuration of e-mail, fax, paging or SMS using SMTP),这里稍作整理
sdn找了很多broadcasting的文章,基本都是在介绍和使用broadcasting的强大功能,但是涉及到后台是如何配置的,一句话:your basis guy must have done it。没办法,咱没有basis guy,自己动手把。这里就不介绍每一个的原理了,一来自己理解的也不透彻,二来这本来就个step by step.如果需要详解了解,可以参考note.另外,这里的配置只是为broadcasting的set mail服务的,所以省略了一些无关的步骤
     主要有下面几个步骤:
     1.配置参数文件Profile parameter(RZ10)
         a)icm/server_port_<*> = PROT=SMTP,PORT=<port>
              事务码RZ10进去,选择实例参数文件,选择扩展。来到参数配置界面,默认情况下已经有一个参数文件icm/server_port_0 = PORT=HTTP,PORT=XXXX(每个服务可能不一样),那么这里的<*>就是要根据你的参数文件的具体情况,如果已经有了_0,这里你就需要设成_1,以此类推,PORT一般设置成25,这里还有一个选项是TIMEOUT可以设定等待邮件服务器回复时间的最大值。这里我的参数文件时: icm/server_port_1 = PROT=SMTP,PORT=25
         b)is/SMTP/virt_host_<*> = <host>:<port>,<port>,...;
              定义虚拟邮件主机,主要用来接收邮件的,_<*>的设置通上。要注意,参数值最后是有一个分号的。
这里我的参数文件是is/SMTP/virt_host_0 = *:25;
     完成后保存,激活。
     配置完需要重启服务,参数才能生效
     2.配置用户(SU01)
         a)对于每一个client,需要创建一个用户作为邮件的接收者,比如我创建了一个用户叫做MAILUSER,用户的类型设置为service,并给该用户赋profile S_A.SCON
         b)对于每个用户来说,如果需要发送或者接收邮件的话,也需要在为其配置email地址,在su01中的general的E-mail中配置即可,通讯方式为remote email
     3.client assignment(SICF)
        执行这个事务码,进去后,点执行,进去后可以看到STMP servers,默认应该是灰色的,双击SMTP servers,配置以下几个地方
         a)Host data ,对于 Profile Parameter Number,输入 "is/STMP/virt_host_<*>"中的<*>的值,一般可能是0,如果不存在的话,下面会有提示的。
         b)Service data,输入接收邮件的相关信息,client以及前面创建的MAILUSER和密码、语言等信息。
         c)Handler list,在第一个位置输入CL_SMTP_EXT_SAPCONNECT
     完成以上配置后,右键点击SMTP servers,选择激活。
     4.SAPconnect administration(SCOT)
        a)Default domain,这个邮件的默认域名比如sap.com,那么如果在你发送邮件的时候收件人地址如果只写test的话,系统会自动加上@sap.com,如果收件人地址是全的话,这个domain不维护关系也不大
        b)Nodes,维护SMTP节点,双击后弹出对话框,维护以下信息
          勾上 "Node in user"
          在MAIL HOST和MAIL PORT下面,指定发送邮件服务器的地址,比如如果是163的话,就应该是smtp.163.com
          选中Internet的Set,弹出新对话框,指定接收地址的地址区域,一般用*表示所有邮件都用SMTP来发送。其他信息用默认。
        (这里SAPconnect的信息可以有两种方式显示的,如果双击SMTP节点弹出的是JOB的信息的话,选择菜单中SYSTEM STATUS,切换到为另一种显示方式即可。
        c)Send job,选择菜单中的View-->Jobs,可以检查是否已经有Jobs被调度了,选择Jobs->Create,并指定Job名称,选择SAP&CONNECTALL变式,并选择Schedule Job
         选择 Schedule periodiacally,指定时间间隔,比如10分钟,选择创建。
        到这里,基本配置成功了。可以在SBWP中,选择发送邮件,来测试配置是否成功,输入收件人的邮件地址,点击发送。如果配置成功的话,收一下邮件,应该收到了来自登陆SAP GUI的账号中配置的邮件地址的邮件了。
 
 
注:如果只是使用SAP发送而不接收外部回复回来的邮件,即相当于一个Mail Client的功能,只需要2、4两步就可以了,也不需要更改系统参数。而且最重要的工作是Mail服务器的设置,把SAP Application的IP放到白名单,不要密码验证。

### SAP 系统中实现邮件发送功能的配置教程 #### 配置前置条件 为了在SAP系统中成功实现邮件发送功能,需先完成必要的基础配置工作。这些配置涉及SMTP服务器设置以及用户的权限管理[^1]。 ```abap CALL FUNCTION 'SO_DOCUMENT_SEND_API1' EXPORTING document_data = lv_document_data TABLES packing_list = lt_packing_list contents_bin = lt_contents_bin contents_txt = lt_contents_txt. ``` 以上代码片段展示了调用标准函数 `SO_DOCUMENT_SEND_API1` 的基本结构,用于实际执行邮件发送过程中的数据打包和传输逻辑[^3]。 #### SMTP服务端口配置 进入事务码 **SCOT** 进行SMTP服务器的相关设定。在此界面输入公司所使用的外部邮件服务器地址及其对应端口号(通常为25或587),并测试连接状态以确认无误。 #### 用户授权分配 确保负责触发邮件发送动作的操作员具备足够的角色许可,特别是关于消息管理和通信渠道方面的具体权限对象如 `/MSG/SEND_MAIL` 和其他关联项应被授予相应用户组成员资格。 #### 开发自定义程序集成Outlook应用 如果希望进一步增强用户体验,则可以考虑编写一段专门针对Microsoft Outlook客户端的应用接口脚本来简化日常作业流程。此部分详细介绍如何借助ABAP编程语言来激活本地安装版Outlook软件从而完成整个电子邮件撰写与投递环节的工作流设计思路。 注意,在开发此类解决方案之前,请务必获得企业内部IT部门对于访问第三方应用程序API接口的安全政策批准文件副本记录备案之用以防万一将来可能出现任何合规性审查需求时能够迅速提供证明材料支持说明情况合理合法合规操作行为准则遵循最佳实践指南建议事项列表如下: - 明确指定目标收件人群体范围; - 设置默认抄送/密送选项以便追踪历史记录; - 自动填充主题栏位内容提高识别度减少混淆可能性; - 嵌入个性化问候语句提升友好程度增进彼此关系质量水平层次感强弱对比明显突出重点强调核心要点清晰明了易于理解接受吸收转化效率最大化优化效果显著改善成果丰硕累累满载而归值得推广普及广泛应用场景丰富多样变化万千层出不穷令人目不暇接眼花缭乱叹为观止拍手叫绝好! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值