zoukankan      html  css  js  c++  java
  • 【ABAP系列】SAP 如何用ABAP实现自动发送外部邮件

    公众号:matinal
    本文作者:matinal
     

    前言部分

    大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

    正文部分

    SAP可以把一些信息发到外部的Email地址,比如把PO的信息发送给供应商。
    实现这个事情主要的问题有两个:配置系统和写ABAP
     
    配置系统:(这是470以上系统的配置,如果是47C或者以下,会用到RFC(SM59))
    1.设置Profile参数
    2.SAP发邮件用户的维护
    3.SICF
    4.SCOT
    5.SOST (查看发送状况)
     
    ABAP的编写:
     
    基本是参考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放到白名单,不要密码验证。

  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11176577.html
Copyright © 2011-2022 走看看