Send email to many users
REPORT Z_SEND_EMAIL_to_Users.
TABLES: USR02.
DATA: C(15).
DATA: SENT LIKE SONV-FLAG.
DATA: EMAIL_ID LIKE SOFOLENTI1-OBJECT_ID.
DATA: BEGIN OF EMAIL_DATA.
INCLUDE STRUCTURE SODOCCHGI1.
DATA: END OF EMAIL_DATA.
DATA: BEGIN OF EMAIL_SEND OCCURS 10.
INCLUDE STRUCTURE SOMLRECI1.
DATA: END OF EMAIL_SEND.
DATA: BEGIN OF EMAIL_TEXT OCCURS 10.
INCLUDE STRUCTURE SOLISTI1.
DATA: END OF EMAIL_TEXT.
****************************************************
PARAMETERS: ALL__CLI RADIOBUTTON GROUP RADI.
PARAMETERS: THIS_CLI RADIOBUTTON GROUP RADI.
PARAMETERS: SELECT__ RADIOBUTTON GROUP RADI.
SELECT-OPTIONS SEND_TO FOR C NO INTERVALS.
SELECTION-SCREEN SKIP.
PARAMETERS: SUBJECT(30).
SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /1(20) TEXT-999.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L1(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L2(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L3(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L4(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L5(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L6(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L7(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L8(84).
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: L9(84).
SELECTION-SCREEN END OF LINE.
***********************************************
EMAIL_TEXT-LINE = L1.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L2.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L3.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L4.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L5.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L6.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L7.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L8.
APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = L9.
APPEND EMAIL_TEXT.
EMAIL_DATA-OBJ_NAME = ‘MESSAGE’.
EMAIL_DATA-OBJ_DESCR = SUBJECT.
EMAIL_DATA-OBJ_LANGU = ‘E’.
EMAIL_DATA-SENSITIVTY = ‘P’.
EMAIL_DATA-OBJ_PRIO = ’1′.
EMAIL_DATA-NO_CHANGE = ‘X’.
EMAIL_DATA-PRIORITY = ’1′.
IF SELECT__ = ‘X’.
LOOP AT SEND_TO.
EMAIL_SEND-RECEIVER = SEND_TO-LOW.
EMAIL_SEND-REC_TYPE = ‘U’.
EMAIL_SEND-EXPRESS = ‘X’.
APPEND EMAIL_SEND.
ENDLOOP.
ELSEIF THIS_CLI = ‘X’.
SELECT * FROM USR02.
IF USR02-USTYP = ‘A’ AND USR02-BNAME NE ‘SAP*’
AND USR02-BNAME NE ‘DDIC’.
EMAIL_SEND-RECEIVER = USR02-BNAME.
EMAIL_SEND-REC_TYPE = ‘U’.
EMAIL_SEND-EXPRESS = ‘X’.
APPEND EMAIL_SEND.
ENDIF.
ENDSELECT.
ELSEIF ALL__CLI = ‘X’.
SELECT * FROM USR02 CLIENT SPECIFIED.
IF USR02-USTYP = ‘A’ AND USR02-BNAME NE ‘SAP*’
AND USR02-BNAME NE ‘DDIC’.
EMAIL_SEND-RECEIVER = USR02-BNAME.
EMAIL_SEND-REC_TYPE = ‘U’.
EMAIL_SEND-EXPRESS = ‘X’.
APPEND EMAIL_SEND.
ENDIF.
ENDSELECT.
ENDIF.
WRITE:/ ‘End of program’.
*****************************************************
CALL FUNCTION ‘SO_NEW_DOCUMENT_SEND_API1‘
EXPORTING
DOCUMENT_DATA = EMAIL_DATA
DOCUMENT_TYPE = ‘RAW’
PUT_IN_OUTBOX = ‘X’
IMPORTING
SENT_TO_ALL = SENT
NEW_OBJECT_ID = EMAIL_ID
TABLES
OBJECT_CONTENT = EMAIL_TEXT
RECEIVERS = EMAIL_SEND
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.
Source: Planet sap
If you like this post, you may as well like these too:
- Send Output Through Email Instead of Fax or Printout Check whether the transmission medium has been maintained for the processing routines for your output type. Make sure that this transmission medium is placed in the partner functions evenly. Follow...
- Sizing by Users and by Throughput After this session you should be able to: Tell the different scopes of user and throughput sizing Know when to use which approach Understand the basic sizing algorithms for both...
- Working with ALV Grid for End Users Sometimes, when you are new to SAP and working at an end user level. It gets little difficult to get to know all the hidden gems of SAP. Like ALV...



















Leave a Reply