配置-如何用ABAP实现自动发送外部邮件

在dev系统上试验。根据老白博客上的步骤来做的,加进了自己的理解。

1.      配置参数文件Profile parameter(RZ10)

 

点修改,新建参数icm/server_port_1 赋值为“ PROT=SMTP,PORT=25”

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

新建参数is/SMTP/virt_host_0 赋值为“ *: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

打开SU01在登录数据标签中,我修改了自己的用户名的用户类型diaglog类型为service类型。

注:第一次我把用户类型改为了系统用户,第二天再登录系统时提示用对话用户登录。所以记得把类型修改回来,否则重新登录系统时可能登录不上。因为系统用户和通讯用户不允许使用SAP GUI登录。service类型可以使用SAP GUI登录。详见sap用户类型.txt

b)对于每个用户来说,如果需要发送或者接收邮件的话,也需要在为其配置email地址,在su01中的地址标签的E-mail中配置即可,通讯方式为remote email

3.client assignment(tcode: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(tcode:SCOT)


        a)菜单栏设置----Default domain,此处我写的是公司的邮件服务器

这个邮件的默认域名比如sap.com,那么如果在你发送邮件的时候收件人地址如果只写test的话,系统会自动加上@sap.com,如果收件人地址是全的话,这个domain不维护关系也不大
        b) 维护SMTP节点:视图----节点Nodes—打开节点

 

或者双击上上图SMTP后弹出对话框,维护以下信息


勾上 "Node in user".

在MAIL HOST和MAIL PORT下面,指定发送邮件服务器的地址,比如如果是163的话,就应该是smtp.163.com

这里MAIL HOST填写我公司邮件服务器地址,MAIL PORT填写25

选中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的账号中配置的邮件地址的邮件了。

PS:一开始只可以往公司邮箱发邮件,往外部邮箱发送时显示发送成功但总是收不到。把scot----smtp节点里的mail host改成公司邮件服务器的IP即可收到(不知为啥)。外部邮箱收到sap发送的邮件。但是,发往网易的邮件有收到,发往雅虎的邮件却没收到。

 

注:如果只是使用SAP发送而不接收外部回复回来的邮件,即相当于一个Mail Client的功能,只需要2、4两步就可以了,也不需要更改系统参数。而且最重要的工作是Mail服务器的设置,把SAP Application的IP放到白名单,不要密码验证。

转载自:http://blog.csdn.net/jamesxsy/article/details/5997204


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ABAP是一种用于SAP软件开发的编程语言,可以用于发送电子邮件。要在ABAP发送电子邮件,可以按照以下步骤进行操作: 1. 设置邮件配置:首先,需要在ABAP系统中进行邮件配置。可以使用事务码SCOT来配置SMTP服务器和端口号,以及其他邮件服务器的相关信息。确保邮件服务器已正确配置。 2. 定义变量和对象:在ABAP程序中,需要定义一些变量和对象,用于存储和传递电子邮件相关的信息。例如,需要定义一个实例化的CL_BCS类对象来处理邮件发送功能。 3. 设置电子邮件的属性:在发送电子邮件之前,需要设置相关的属性,例如发件人、收件人、抄送、邮件主题、邮件正文等。通过设置这些属性,可以控制邮件的格式和内容。 4. 添加附件(可选):如果需要发送附件,可以通过添加附件来实现。可以使用函数模块SO_ATTACHMENT_INSERT来将附件添加到电子邮件中。 5. 发送邮件:当所有的邮件属性和附件设置完毕后,使用CL_BCS类中的SEND方法来发送电子邮件电子邮件将会根据设置的属性和内容被发送到指定的收件人。 6. 检查发送结果:发送邮件后,可以检查邮件发送结果。可以使用CL_BCS类中的GET_SENT_MESSAGES方法来获取电子邮件发送的结果信息。 以上是使用ABAP发送电子邮件的基本步骤。在实际的开发中,可能还有其他的细节需要注意,例如设置邮件服务器的安全性、处理邮件发送失败的情况等。但总体来说,通过合适的配置和正确的代码编写,可以在ABAP中成功发送电子邮件。 ### 回答2: ABAP是一种针对SAP应用程序开发的编程语言,可以与SAP系统进行交互。在ABAP中,可以使用几种方法来发送电子邮件。 首先,可以使用SAP提供的Function Module(函数模块)来发送电子邮件。例如,使用函数模块SO_NEW_DOCUMENT_ATT_SEND_API1可以发送电子邮件,并且可以附加文件。这个函数模块可以设置电子邮件发送者、接收者、主题、正文和附件等信息。 其次,可以使用ABAP邮件发送类CL_BCS来发送电子邮件。CL_BCS是SAP提供的一个类,可以方便地发送电子邮件。你可以通过实例化CL_BCS类,并设置电子邮件的相关属性,例如发送者、接收者、主题、正文和附件等。然后,可以调用该类的SEND方法来发送邮件。 第三种方法是使用SMTP服务器发送电子邮件。在ABAP中,可以使用函数模块INTERNET_SMTP_MAIL发送电子邮件。通过设置相关参数,例如SMTP服务器地址、发送者、接收者、主题和正文等,可以使用该函数模块发送邮件。 无论使用哪种方法,发送电子邮件之前,需要确保SAP系统已经配置了正确的邮件服务器参数,并且相应的授权已经设置。此,还需要在后台任务管理器中设置最小运行时间,以便邮件可以发送成功。 综上所述,使用ABAP发送电子邮件有多种方法可供选择,根据具体情况选择合适的方法,并提供必要的参数,即可成功发送电子邮件。 ### 回答3: ABAP 是一种专门用于 SAP 系统的编程语言,可以在 SAP 系统内部使用 ABAP 编写各种程序和功能。发送电子邮件是其中的一项常见需求,下面我将使用 ABAP 来演示如何发送电子邮件。 首先,我们需要配置一个可用的 SAP 发件人邮件账户。在 SAP 系统中,可以通过访问交易码 SCOT 进行相关配置。在 SCOT 页面中,我们可以设置发送邮件所需的 SMTP 服务器和认证信息。 接下来,在 ABAP 程序中编写代码来发送邮件。我们可以使用函数模块 `SO_NEW_DOCUMENT_ATT_SEND_API1` 来发送带有附件的邮件。以下是一个示例代码: ```abap DATA: lv_sender TYPE sy-uname VALUE 'your_sender', lv_recipient TYPE ad_smtpadr, lt_attachment TYPE STANDARD TABLE OF solisti1, lw_attachment TYPE solisti1, lv_subject TYPE so_obj_des, lv_text TYPE soli_tab, lt_receivers TYPE STANDARD TABLE OF somlreci1, lw_receiver TYPE somlreci1. * 设置发件人和收件人 lv_recipient = 'your_recipient'. lw_receiver-receiver = lv_recipient. APPEND lw_receiver TO lt_receivers. * 设置邮件主题 lv_subject = '邮件主题'. * 设置邮件正文 lv_text = '邮件正文'. * 添加附件(可选) CLEAR lw_attachment. lw_attachment-obj_descr = '附件描述'. lw_attachment-obj_name = 'file_name.pdf'. "附件文件名 lw_attachment-obj_lang = 'ZH'. "附件语言 lw_attachment-obj_len = strlen( '附件内容' ). "附件内容长度 lw_attachment-objbin = '附件内容'. APPEND lw_attachment TO lt_attachment. * 发送邮件 CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = lw_send_request TABLES packing_list = lt_attachment object_header = lt_receivers contents_txt = lv_text contents_bin = lt_attachment EXCEPTIONS too_many_receivers = 1 document_not_sent = 2 document_type_not_exist = 3 operation_no_authorization = 4 parameter_error = 5 x_error = 6 enqueue_error = 7 OTHERS = 8. ``` 在上述示例中,我们定义了发件人、收件人、邮件主题、邮件正文和附件信息,并将其传递给函数模块 `SO_NEW_DOCUMENT_ATT_SEND_API1` 进行发送。请注意,发送邮件操作可能需要相应的权限和配置,具体情况需根据实际系统进行调整。 以上就是使用 ABAP 发送电子邮件的基本步骤和示例代码。通过以上的操作,我们可以在 SAP 系统中使用 ABAP发送电子邮件,并且可以添加附件等特性。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值