ABAP 邮件

function zint_send_email.
*"----------------------------------------------------------------------
*"*"區域介面:
*" IMPORTING
*" VALUE(KTYPE) TYPE SO_OBJ_TP DEFAULT ‘RAW‘
*" VALUE(SUBJECT) TYPE SO_OBJ_DES
*" VALUE(TEXT) TYPE SOLI_TAB
*" VALUE(SENDER_ADDRESS) TYPE AD_SMTPADR
*" VALUE(SENDER_NAME) TYPE AD_SMTPADR OPTIONAL
*" VALUE(ATTACHMENTS) TYPE RMPS_T_POST_CONTENT OPTIONAL
*" VALUE(IMMEDIATELY) TYPE BOOLEAN OPTIONAL
*" EXPORTING
*" VALUE(E_RESULT) TYPE BOOLEAN
*" TABLES
*" T_RECIPIENT STRUCTURE UPS_YS_HR_CPERSON
*" RETURN STRUCTURE BAPIRET2
*"----------------------------------------------------------------------

data:send_request type ref to cl_bcs,
document type ref to cl_document_bcs,
sender_id type ref to if_sender_bcs,
fail type ref to cx_bcs,
recipient type ref to if_recipient_bcs.

data:w_return like bapiret2,
w_rename type ad_smtpadr,
w_attachment like line of attachments,
w_attachment_subject type sood-objdes.

*BREAK CP900.
refresh return.
clear e_result.
e_result = ‘X‘.
if ktype is initial.
w_return-type = ‘E‘.
w_return-message = ‘未指定文件類別代碼‘.
w_return-parameter = ‘KTYPE‘.
append w_return to return.
clear e_result.
endif.

if subject is initial.
w_return-type = ‘E‘.
w_return-message = ‘未指定郵件主題‘.
w_return-parameter = ‘SUBJECT‘.
append w_return to return.
clear e_result.
endif.

if text[] is initial.
w_return-type = ‘E‘.
w_return-message = ‘未指定郵件內容‘.
w_return-parameter = ‘TEXT‘.
append w_return to return.
clear e_result.
endif.

if sender_address is initial.
w_return-type = ‘E‘.
w_return-message = ‘未指定發送人郵件地址‘.
w_return-parameter = ‘SENDER_ADDRESS‘.
append w_return to return.
clear e_result.
endif.
if t_recipient[] is initial.
w_return-type = ‘E‘.
w_return-message = ‘未指定接收人郵件地址‘.
w_return-parameter = ‘RECIPIENT‘.
append w_return to return.
clear e_result.
endif.

clear w_return.

check e_result is not initial.

try.
* 第一步: 创建发送请求
send_request = cl_bcs=>create_persistent( ).

* 第二步: 创建整理发送内容
document = cl_document_bcs=>create_document(
i_type = ktype
i_text = text
i_subject = subject ).
* 增加附件內容
loop at attachments into w_attachment.
w_attachment_subject = w_attachment-subject.
document->add_attachment(
exporting
i_attachment_type = w_attachment-objtp
i_attachment_subject = w_attachment_subject
i_att_content_hex = w_attachment-cont_hex ).
endloop.
* 第三步: 添加邮件内容到发送请求
send_request->set_document( document ).

* 第四步:設置發送人出件地址
sender_id = cl_cam_address_bcs=>create_internet_address(
i_address_string = sender_address
i_address_name = sender_name ).
send_request->set_sender( sender_id ).

* 第五步: 接收者邮件地址转换
loop at t_recipient where cperson ne ‘99999999‘.
w_rename = t_recipient-emnam.
recipient = cl_cam_address_bcs=>create_internet_address(
i_address_string = t_recipient-e_mail
i_address_name = w_rename ).
send_request->add_recipient( recipient ).
endloop.

loop at t_recipient where cperson eq ‘99999999‘.
w_rename = t_recipient-emnam.
recipient = cl_cam_address_bcs=>create_internet_address(
i_address_string = t_recipient-e_mail
i_address_name = w_rename ).
* SEND_REQUEST->ADD_RECIPIENT( RECIPIENT ).
call method send_request->add_recipient
exporting
i_recipient = recipient
i_copy = ‘X‘.
endloop.

* 第六步,設置狀態屬性
send_request->set_status_attributes(
i_requested_status = ‘E‘
i_status_mail = ‘E‘ ).
send_request->set_send_immediately( immediately ).

* 第七步: 正式发送并提交作业
send_request->send( i_with_error_screen = ‘X‘ ).
commit work and wait.
catch cx_bcs into fail.
e_result = ‘‘.
w_return-type = ‘E‘.
w_return-message = fail->get_text( ).
append w_return to return.
clear w_return.
endtry.

endfunction.

时间: 2024-10-23 11:57:31

ABAP 邮件的相关文章

ABAP发邮件函数

步骤: 一.检查输入参数, (1)未指定文件類別代碼,(2)未指定郵件主題, (3)未指定郵件內容, (4)未指定發送人郵件地址, (5)未指定接收人郵件地址, 二.调用发送功能, (1)创建发送请求 (2)创建整理发送内容, 增加附件內容(3)添加邮件内容到发送请求 (4)設置發送人出件地址 (5)接收者邮件地址转换 (6)第六步,設置狀態屬性 (7)第七步: 正式发送并提交作业 ?如何确认是否发送成功, 1.是否可以请求发送接收回执? 2.是否可以返回成功代码? ABAP发邮件函数:  表:

ABAP 常用函数

函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT="*"重新组织VIEW_MAINTENANCE_CALL 维护表视图 函数名 描述 DY_GET_FOCUS 获得屏幕焦点 DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值 函数名 描述 F4IF_INT_TABLE_VALUE_REQUEST 显示检索help READ_TEXT 读

ABAP开发顾问必备:SAP ABAP开发技术总结

声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 该文档是根据我过去多年学习文档与工作文档总结而成,项目开发过程中我都会参考此文档,主要ABAP很多细节上的东西不可能你记得很牢固,或者你记得一时,但过不了几天做别的项目就会

abap写发送邮件程序

最近项目中有需求要通过ABAP开发往外网发邮件,上网查了一些资料,下面是开发过程中整理的一些资料及代码,希望对需要的兄弟有帮助. ABAP发邮件需要两大块:一是Basis配置邮件服务器,二是ABAP写发送邮件代码,下面分别介绍一下: 一.Step By Step配置SAP邮件服务器,通过配置,不仅能向Sap User 发送邮件,也能发送外部邮件,具体步骤如下: 1.RZ10配置 Step1:运行事务码RZ10,显示如图1所示界面,分别进行图1中1.2.3步操作. 图1 Step2:进入修改界面,

ABAP/4 技术总结 V3.0

SAP --ABAP/4 技术总结 V3.0 2014-10-14 --江正军 1.      基础... 1 1.1. 基本数据类型... 1 1.1.1.        P类型(压缩型)数据... 1 1.2.           TYPE.LIKE. 2 1.3.           DESCRIBE. 3 1.4.           字符串表达式... 3 1.5.           Data element.Domain. 4 1.6.           词典预定义类型与ABAP

使用ABAP Data Validator验证数据有效性

在日常的开发过程中,我们常常要处理不同来源的数据.数据可能来自不可靠的外部系统.不可靠的用户输入和甚至设计有误的数据库表,因此,对数据有效性进行验证是必要的工作. 开源工具ABAP Data Validator是一个使用ABAP开发的数据验证工具,它可以简化开发者在这方面的工作.本文将介绍它的用法和一些设计思路. 本文链接:https://www.cnblogs.com/hhelibeb/p/12206648.html 原创内容,转载请注明 目的 具体而言,ABAP Data Validator

Linux发邮件之mail

1.安装 (需要sendmail或postfix服务) sendmail     # yum install sendmail      # systemctl start sendmail.service     # systemctl status sendmail.service postfix     # yum install mailx     # systemctl start postfix.service     # systemctl status postfix.servi

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表. 发布这些文档最快速有效的方法就是发送邮件. python中email模块使得处理邮件变得比较简单 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 本段摘录于    http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 1.smtplib模块 smtplib.SMTP([host[, p

Linux发邮件

一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容  set [email protected] smtp="smtp.qq.com"set smtp-auth-user="[email protected]" smtp-auth-password="123456"set smtp-auth=login 说明: from: 对方收到邮件时显示的发件人smtp: 指定第三方发送邮件的smtp服务器地址smtp-auth