发送邮件功能模块

2020-08-23 08:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

是否有任何功能模块可以从ABAP程序发送邮件。

我的要求是运行报告并以邮件形式发送内部表的内容。

预先感谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

是否有任何功能模块可以从ABAP程序发送邮件。

我的要求是运行报告并以邮件形式发送内部表的内容。

预先感谢

付费偷看设置
发送
6条回答
spaceman01
1楼 · 2020-08-23 09:21.采纳回答

嗨,

u可以使用以下FM's

1) SO_NEW_DOCUMENT_ATT_SEND_API1 (发送带有附件的新文档)

2) SO_NEW_DOCUMENT_SEND_API1 (发送不带附件的新文档)

这是一个用于发送邮件的小程序。

data:邮件数据类型为SODOCCHGI1。

data:带有标题行的SOLISTI1的mailtxt类型表。

data:带有标题行的SOMLRECI1的mailrec类型表。

选择开始。

清除:maildata,

mailtxt,

mailrec。

刷新:mailtxt,

mailrec。

maildata-obj_name ='测试'。

maildata-obj_descr ='测试'。

maildata-obj_langu = sy-langu。

mailtxt-line ='这是一封测试邮件'。

附加mailtxt。

mailrec-receiver = 'mailid@gmail.com '。

mailrec-rec_type ='U'。

附加mailrec。

CALL FUNCTION'SO_NEW_DOCUMENT_SEND_API1'

导出

document_data = maildata

DOCUMENT_TYPE ='RAW'

PUT_IN_OUTBOX =''

COMMIT_WORK ='X'

  • 导入

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

表格

OBJECT_HEADER = mailtxt

OBJECT_CONTENT = mailtxt

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

接收者= mailrec

  • 例外

  • 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

IF sy-subrc <> 0。

  • 消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO

  • 带有SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。

ENDIF。

此致

Padmam。

xfwsx85
2楼-- · 2020-08-23 09:11

大家好,

这对我不起作用。

如果我替换为" mailrec-receiver = 'mailid@gmail.com '",是否应该向我发送电子邮件。 并带有" mailrec-receiver = 'myemail@gmail.com '"。

预先感谢

Doze时光
3楼-- · 2020-08-23 09:20

嗨,

检查此FM,

'SO_NEW_DOCUMENT_ATT_SEND_API1'

还要检查以下内容:

sap_new_document_send_api1(发送文档)

sap_new_document_att_send_api1(发送附件)。

希望这些可以解决您的问题!

此致!

Ranjita

小灯塔
4楼-- · 2020-08-23 09:09

是的,您需要在事务SCOT中进行正确的设置。

关于sapconnect的文档可以在这里找到: http://help.sap.com/saphelp_erp2005/helpdata/ZH/2b/d926324b8a11d1894c0000e8323c4f/frameset.htm

此外,您还需要安排实际发送邮件的时间,更多信息请参见: http://help.sap.com/saphelp_erp2005/helpdata/EN/2b/d926324b8a11d1894c0000e8323c4f/frameset.htm

悻福寶寶
5楼-- · 2020-08-23 09:27

嗨,

如果您查看Kiran响应,则在代码中有一个Submit语句,

以模式='INT'提交rsconn01

如果使用Submit语句,则不需要任何配置,如果不使用它,则需要通过SCOT事务代码进行配置

致谢

Sudheer

我是小鹏鹏啊
6楼-- · 2020-08-23 09:06

hI,

这是示例程序

&----


*&报告ZSENDEMAIL *

*&*

&----


*&通过SAPCONNECT发送外部电子邮件的示例*

*&*

&----


报告zsendemail。

参数:psubject(40)类型c默认为" Hello",

p_email(40)输入c默认值'test@sapdev.co.uk '。

数据:类似于sopcklsti1的it_packing_list在标题行出现0,

类似于solisti1的it_contents在标题行出现0,

类似于somlreci1的it_receivers在标题行出现0,

it_attachment像solisti1一样在标题行出现0,

gd_cnt类型i,

gd_sent_all(1)类型c,

gd_doc_data类似于sodocchgi1,

gd_error类型为sy-subrc。

数据:SOLISTI1初始大小0的it_message类型标准表

带有标题行。

*************************************************** ************************

*开始选择。

开始选择。

执行populate_message_table。

*发送电子邮件,尽管直到邮件发送后才从SAP发送

*程序已执行(rsconn01)

执行send_email_message。

*指示用于SAPCONNECT的邮件发送程序发送电子邮件(rsconn01)

执行initial_mail_execute_program。

&----


*&表格POPULATE_MESSAGE_TABLE

&----


  • 将文本添加到电子邮件文本表

----


表格populate_message_table。

将"电子邮件第1行"附加到it_message。

将"电子邮件第2行"附加到it_message。

将"电子邮件第3行"附加到it_message。

将"电子邮件第4行"追加到it_message。

endform。 " POPULATE_MESSAGE_TABLE

&----


*&表格SEND_EMAIL_MESSAGE

&----


  • 发送电子邮件

----


表单send_email_message。

  • 填写文档数据。

gd_doc_data-doc_size = 1。

  • 填充主题/通用消息属性

gd_doc_data-obj_langu = sy-langu。

gd_doc_data-obj_name ='SAPRPT'。

gd_doc_data-obj_descr = psubject。

gd_doc_data-sensitiveivty ='F'。

  • 描述消息的正文

清除it_packing_list。

刷新it_packing_list。

it_packing_list-transf_bin =空间。

it_packing_list-head_start = 1。

it_packing_list-head_num = 0。

it_packing_list-body_start = 1。

描述表it_message行it_packing_list-body_num。

it_packing_list-doc_type ='RAW'。

附加it_packing_list。

  • 添加收件人的电子邮件地址

清除it_receivers。

刷新it_receivers。

it_receivers-receiver = p_email。

it_receivers-rec_type ='U'。

it_receivers-com_type ='INT'。

it_receivers-notif_del ='X'。

it_receivers-notif_ndel ='X'。

附加it_receivers。

  • 呼叫FM将消息发布到SAPMAIL

调用函数" SO_NEW_DOCUMENT_ATT_SEND_API1"

导出

document_data = gd_doc_data

put_in_outbox ='X'

导入

sent_to_all = gd_sent_all

表格

packing_list = it_packing_list

contents_txt = it_message

接收者= it_receivers

例外

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

其他= 8。

  • 存储功能模块返回代码

gd_error = sy-subrc。

  • 获取it_receivers返回代码

在it_receivers循环。

endloop。

endform。 " SEND_EMAIL_MESSAGE

&----


*&INITIATE_MAIL_EXECUTE_PROGRAM表格

&----


  • 指示邮件发送程序以供SAPCONNECT发送电子邮件。

----


从表格initiate_mail_execute_program开始。

等待最多2秒钟。

如果gd_error等于0。

以模式='INT'提交rsconn01

输出='X'

然后返回。

endif。

endform。 " INITIATE_MAIL_EXECUTE_PROGRAM

致谢

一周热门 更多>