2020-08-23 08:59发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
是否有任何功能模块可以从ABAP程序发送邮件。
我的要求是运行报告并以邮件形式发送内部表的内容。
预先感谢
嗨,
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,
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。
大家好,
这对我不起作用。
如果我替换为" mailrec-receiver = 'mailid@gmail.com '",是否应该向我发送电子邮件。 并带有" mailrec-receiver = 'myemail@gmail.com '"。
检查此FM,
'SO_NEW_DOCUMENT_ATT_SEND_API1'
还要检查以下内容:
sap_new_document_send_api1(发送文档)
sap_new_document_att_send_api1(发送附件)。
希望这些可以解决您的问题!
此致! p>
Ranjita
是的,您需要在事务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
如果您查看Kiran响应,则在代码中有一个Submit语句,
以模式='INT'提交rsconn01
如果使用Submit语句,则不需要任何配置,如果不使用它,则需要通过SCOT事务代码进行配置
致谢
Sudheer
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。
输出='X'
然后返回。
endif。
endform。 " INITIATE_MAIL_EXECUTE_PROGRAM
最多设置5个标签!
嗨,
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。
大家好,
这对我不起作用。
如果我替换为" mailrec-receiver = 'mailid@gmail.com '",是否应该向我发送电子邮件。 并带有" mailrec-receiver = 'myemail@gmail.com '"。
预先感谢
嗨,
检查此FM,
'SO_NEW_DOCUMENT_ATT_SEND_API1'
还要检查以下内容:
sap_new_document_send_api1(发送文档)
sap_new_document_att_send_api1(发送附件)。
希望这些可以解决您的问题!
此致! p>
Ranjita
是的,您需要在事务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
嗨,
如果您查看Kiran响应,则在代码中有一个Submit语句,
以模式='INT'提交rsconn01
如果使用Submit语句,则不需要任何配置,如果不使用它,则需要通过SCOT事务代码进行配置
致谢
Sudheer
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
致谢
一周热门 更多>