12-06-2007 3:45 AM
Hi,
What is the simplest way to send e-mail in ABAP?? Any FM??
Regards,
Kit
12-06-2007 3:49 AM
You can make use of the FM : SO_NEW_DOCUMENT_ATT_SEND_API1 to send emails to external ids with attachments also.
Do a search in the forum you will find lots of codes related to this
Regards
Gopi
12-06-2007 3:58 AM
Hi KIT ,
you can use SO_NEW_DOCUMENT_ATT_SEND_API1 Fm to send mail through SAP ,but you have to check settings from your end ,otherwise you will have trigger through SCOT trx .
A sample code is as follows ,you can pick relevant part of this .
======================================================================
Report :
=====================================================================*
&----
*& Report Z_ATTACH_TIFF_TO_TRIP
*&
&----
*&
*&
&----
REPORT Z_ATTACH_TIFF_TO_TRIP.
=====================================================================*
DATA Declaration
=====================================================================*
Includes
INCLUDE : <CNTN01>.
Tables
TABLES : SWWWIHEAD.
DATA: G_TRANSACTION LIKE SY-TCODE,
B_DONE LIKE SY-DEBUG,
l_event like SWETYPECOU-EVENT VALUE 'TRIGGERED',
l_objtype like SWETYPECOU-OBJTYPE,
l_creator like swhactor,
l_msgv1 like sy-msgv1,
l_msgv2 like sy-msgv2,
l_eventid like SWEDUMEVID-EVTID,
g_workitem LIKE SWWWIHEAD-WI_ID,
returncode(1),
GL_FILE_PATH LIKE SAPB-SAPPFAD VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Vendor_Invoices/',
GL_FILE_PATH(100) TYPE C VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Other_Docs/',
GL_PATH LIKE SAPB-SAPPFAD VALUE 'C:\graphicdata\',
L_FILE_PATH(100) TYPE C , "VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Other_Docs/',
L_PATH LIKE SAPB-SAPPFAD , "VALUE 'C:\graphicdata\',
GL_SWW_WITEXT LIKE swwwihead-wi_text,
l_data type table of soli,
l_size type i.
Internal tables
DATA : GT_SWWWIHEAD TYPE TABLE OF SWWWIHEAD,
GS_SWWWIHEAD LIKE LINE OF GT_SWWWIHEAD,
GT_ZTIFF_ATTACH TYPE TABLE OF ZTIFF_ATTACH,
GS_ZTIFF_ATTACH LIKE LINE OF GT_ZTIFF_ATTACH.
TYPES : BEGIN OF TY_FINAL,
WI_ID TYPE SWW_WIID,
EMP_NUMBER TYPE AD_PERSNUM,
TRIP_NUMBER TYPE REINR,
FLAG(1) TYPE C,
END OF TY_FINAL.
DATA : GT_FINAL TYPE STANDARD TABLE OF TY_FINAL,
GS_FINAL LIKE LINE OF GT_FINAL.
DATA: GT_LOG TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: GT_ERROR_LOG TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
WITH HEADER LINE.
Constants
CONSTANTS: C_MAIL LIKE G_TRANSACTION VALUE 'SO01',
C_WORKFLOW LIKE SWEHRFLDS-RH_TASK VALUE 'WS90000012',
C_EVENT LIKE SWETYPECOU-EVENT VALUE 'TRIGGERED',
C_GENTASK LIKE SWD_CUSTOM-DECI_TASK VALUE 'TS90100071',
C_OBJECT LIKE SWETYPECOU-OBJTYPE VALUE 'WFTS',
C_DELAY LIKE SWEFLAGS-DELAYFLAG VALUE 'X',
CON_TAB TYPE X VALUE '09'. "OK for non Unicode
DATA: IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
W_CNT TYPE I,
W_SENT_ALL(1) TYPE C,
W_DOC_DATA LIKE SODOCCHGI1,
GD_ERROR TYPE SY-SUBRC,
GD_RECIEVER TYPE SY-SUBRC.
DATA : G_EMAIL TYPE SOMLRECI1-RECEIVER
VALUE 'ashish.kharade@post.serco.com'.
======================================================================
Initialization *
======================================================================
INITIALIZATION.
======================================================================
Main Processing block *
======================================================================
PERFORM GET_TS90100071_WORKITEM.
PERFORM GET_ZTIFF_ATTACH_DATA.
PERFORM ATTACHMENT.
PERFORM SEND_LOG_MAIL.
======================================================================
End of processing block *
======================================================================
======================================================================
Subroutines *
======================================================================
&----
*& Form SEND_LOG_MAIL
&----
Send log mail
----
FORM SEND_LOG_MAIL.
*Moving data to log table .
IT_ATTACH[] = GT_LOG[].
Populate message body text
PERFORM POPULATE_EMAIL_MESSAGE_BODY.
Send file by email as .TXT
PERFORM SEND_FILE_AS_EMAIL_ATTACHMENT
TABLES IT_MESSAGE
IT_ATTACH
USING G_EMAIL
'Log File'
'TXT'
'Log.TXT'
'Log file'
' '
' '
CHANGING GD_ERROR
GD_RECIEVER.
Instructs mail send program for SAPCONNECT to send email(rsconn01)
PERFORM INITIATE_MAIL_EXECUTE_PROGRAM.
ENDFORM. "SEND_LOG_MAIL
&----
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
&----
Initiate mail execution program
----
FORM INITIATE_MAIL_EXECUTE_PROGRAM.
WAIT UP TO 2 SECONDS.
SUBMIT RSCONN01 WITH MODE = 'INT'
WITH OUTPUT = 'X'
AND RETURN.
ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
&----
*& Form SEND_FILE_AS_EMAIL_ATTACHMENT
&----
Send mail as an attachment
----
FORM SEND_FILE_AS_EMAIL_ATTACHMENT TABLES PIT_MESSAGE
PIT_ATTACH
USING P_EMAIL
P_MTITLE
P_FORMAT
P_FILENAME
P_ATTDESCRIPTION
P_SENDER_ADDRESS
P_SENDER_ADDRES_TYPE
CHANGING P_ERROR
P_RECIEVER.
DATA: LD_ERROR TYPE SY-SUBRC,
LD_RECIEVER TYPE SY-SUBRC,
LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,
LD_EMAIL LIKE SOMLRECI1-RECEIVER,
LD_FORMAT TYPE SO_OBJ_TP ,
LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,
LD_ATTFILENAME TYPE SO_OBJ_DES ,
LD_SENDER_ADDRESS LIKE SOEXTRECI1-RECEIVER,
LD_SENDER_ADDRESS_TYPE LIKE SOEXTRECI1-ADR_TYP,
LD_RECEIVER LIKE SY-SUBRC.
LD_EMAIL = P_EMAIL.
LD_MTITLE = P_MTITLE.
LD_FORMAT = P_FORMAT.
LD_ATTDESCRIPTION = P_ATTDESCRIPTION.
LD_ATTFILENAME = P_FILENAME.
LD_SENDER_ADDRESS = P_SENDER_ADDRESS.
LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.
Fill the document data.
W_DOC_DATA-DOC_SIZE = 1.
Populate the subject/generic message attributes
W_DOC_DATA-OBJ_LANGU = SY-LANGU.
W_DOC_DATA-OBJ_NAME = 'SAPRPT'.
W_DOC_DATA-OBJ_DESCR = LD_MTITLE .
W_DOC_DATA-SENSITIVTY = 'F'.
Fill the document data and get size of attachment
CLEAR W_DOC_DATA.
READ TABLE IT_ATTACH INDEX W_CNT.
W_DOC_DATA-DOC_SIZE =
( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).
W_DOC_DATA-OBJ_LANGU = SY-LANGU.
W_DOC_DATA-OBJ_NAME = 'SAPRPT'.
W_DOC_DATA-OBJ_DESCR = LD_MTITLE.
W_DOC_DATA-SENSITIVTY = 'F'.
CLEAR T_ATTACHMENT.
REFRESH T_ATTACHMENT.
T_ATTACHMENT[] = PIT_ATTACH[].
Describe the body of the message
CLEAR T_PACKING_LIST.
REFRESH T_PACKING_LIST.
T_PACKING_LIST-TRANSF_BIN = SPACE.
T_PACKING_LIST-HEAD_START = 1.
T_PACKING_LIST-HEAD_NUM = 0.
T_PACKING_LIST-BODY_START = 1.
DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.
T_PACKING_LIST-DOC_TYPE = 'RAW'.
APPEND T_PACKING_LIST.
Create attachment notification
T_PACKING_LIST-TRANSF_BIN = 'X'.
T_PACKING_LIST-HEAD_START = 1.
T_PACKING_LIST-HEAD_NUM = 1.
T_PACKING_LIST-BODY_START = 1.
DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.
T_PACKING_LIST-DOC_TYPE = LD_FORMAT.
T_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.
T_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.
T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.
APPEND T_PACKING_LIST.
Add the recipients email address
CLEAR T_RECEIVERS.
REFRESH T_RECEIVERS.
T_RECEIVERS-RECEIVER = LD_EMAIL.
T_RECEIVERS-REC_TYPE = 'U'.
T_RECEIVERS-COM_TYPE = 'INT'.
T_RECEIVERS-NOTIF_DEL = 'X'.
T_RECEIVERS-NOTIF_NDEL = 'X'.
APPEND T_RECEIVERS.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = W_DOC_DATA
PUT_IN_OUTBOX = 'X'
SENDER_ADDRESS = LD_SENDER_ADDRESS
SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL = W_SENT_ALL
TABLES
PACKING_LIST = T_PACKING_LIST
CONTENTS_BIN = T_ATTACHMENT
CONTENTS_TXT = IT_MESSAGE
RECEIVERS = T_RECEIVERS
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.
Populate zerror return code
LD_ERROR = SY-SUBRC.
Populate zreceiver return code
LOOP AT T_RECEIVERS.
LD_RECEIVER = T_RECEIVERS-RETRN_CODE.
ENDLOOP.
ENDFORM. "SEND_FILE_AS_EMAIL_ATTACHMENT
&----
*& Form POPULATE_EMAIL_MESSAGE_BODY
&----
Populate Email message body text
----
FORM POPULATE_EMAIL_MESSAGE_BODY.
REFRESH IT_MESSAGE.
IT_MESSAGE = 'Please find attached a Log file'.
APPEND IT_MESSAGE.
ENDFORM. " POPULATE_EMAIL_MESSAGE_BODY
&----
*& Form GET_TS90100071_WORKITEM.
&----
Get all the entries for task TS90100071
----
FORM GET_TS90100071_WORKITEM.
DATA : GL_EMPNO(15) TYPE C,
GL_TRIPNO(15) TYPE C,
GL_TEMP(30) TYPE C.
SELECT * FROM SWWWIHEAD INTO TABLE GT_SWWWIHEAD WHERE
WI_RH_TASK EQ C_GENTASK
AND CB_DONE NE 'X'.
lOOP AT GT_SWWWIHEAD INTO GS_SWWWIHEAD.
SELECT SINGLE WI_TEXT FROM SWWWIHEAD INTO GL_SWW_WITEXT
WHERE WI_ID EQ GS_SWWWIHEAD-TOP_WI_ID
AND WI_LANG EQ 'E'
AND WI_RH_TASK EQ 'WS90000012'.
"Expense Approval Workflow Trip 10003105 / 0000000021
GL_TEMP = gl_sww_witext+31.
CONDENSE GL_TEMP.
SPLIT GL_TEMP AT '/' INTO: GL_EMPNO GL_TRIPNO.
CONDENSE: GL_EMPNO, GL_TRIPNO.
MOVE GS_SWWWIHEAD-WI_ID TO GS_FINAL-WI_ID.
MOVE GL_EMPNO TO GS_FINAL-EMP_NUMBER.
MOVE GL_TRIPNO TO GS_FINAL-TRIP_NUMBER.
APPEND GS_FINAL TO GT_FINAL.
ENDLOOP.
ENDFORM. "GET_TS90100071_WORKITEM
&----
*& Form GET_ZTIFF_ATTACH_DATA.
&----
Get all the entries from table ZTIFF_ATTACH
----
FORM GET_ZTIFF_ATTACH_DATA.
SELECT * FROM ZTIFF_ATTACH
INTO CORRESPONDING FIELDS OF TABLE GT_ZTIFF_ATTACH
FOR ALL ENTRIES IN GT_FINAL
WHERE EMP_NUMBER EQ GT_FINAL-EMP_NUMBER
AND TRIP_NUMBER EQ GT_FINAL-TRIP_NUMBER
AND FLAG_ATTACH NE 'X'
AND FLAG_DELETE NE 'X'.
ENDFORM. "GET_ZTIFF_ATTACH_DATA
&----
*& Form GET_ZTIFF_ATTACH_DATA.
&----
Get all the entries from table ZTIFF_ATTACH
----
FORM ATTACHMENT.
DATA : l_return_code TYPE SY-SUBRC,
l_WI_ID TYPE SWW_WIID,
l_file TYPE STRING,
l_text TYPE STRING.
Clear : l_return_code,
GS_FINAL,
L_FILE_PATH,
L_PATH.
LOOP AT GT_FINAL INTO GS_FINAL.
clear : GS_ZTIFF_ATTACH.
READ TABLE GT_ZTIFF_ATTACH INTO GS_ZTIFF_ATTACH
WITH KEY EMP_NUMBER = GS_FINAL-EMP_NUMBER
TRIP_NUMBER = GS_FINAL-TRIP_NUMBER
FLAG_ATTACH = ' '.
IF SY-SUBRC EQ 0.
Forming a file path to read file from application server .
concatenate GL_FILE_PATH GS_ZTIFF_ATTACH-FILE_NAME
INTO L_FILE_PATH.
Forming a download path
concatenate GL_PATH GS_ZTIFF_ATTACH-FILE_NAME
INTO L_PATH.
Uploading the object from application server .
perform Upload_object .
FM for workitem attachment (background mode)
CALL FUNCTION 'Z_WORKITEM_ATTACHMENT_NEW'
EXPORTING
WORKITEM_ID = GS_FINAL-WI_ID
PC_PATH_AND_FILE = L_PATH
USER = SY-UNAME
DO_COMMIT = 'X'
LANGUAGE = SY-LANGU
IMPORTING
RETURN_CODE = l_return_code
TABLES
GT_ERROR_LOG = GT_ERROR_LOG
*
*
FM is called for Workitem attachment(Foreground mode)
.
CALL FUNCTION 'Z_WORKITEM_ATTACHMENT'
EXPORTING
WORKITEM_ID = GS_FINAL-WI_ID
PC_PATH_AND_FILE = L_PATH
USER = SY-UNAME
DO_COMMIT = 'X'
LANGUAGE = SY-LANGU
IMPORTING
RETURN_CODE = l_return_code
TABLES
GT_ERROR_LOG = GT_ERROR_LOG
.
IF SY-SUBRC <> 0.
Appending Log file
l_WI_ID = GS_FINAL-WI_ID.
l_file = GS_ZTIFF_ATTACH-FILE_NAME.
l_text = ': Error occured while attaching the file'.
Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER
l_WI_ID l_file l_text INTO
GT_LOG separated by SPACE.
APPEND GT_LOG.
ELSE.
Appending Log file
l_WI_ID = GS_FINAL-WI_ID.
l_file = GS_ZTIFF_ATTACH-FILE_NAME.
l_text = ': File attached Sucessfully'.
Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER
l_WI_ID l_file l_text INTO
GT_LOG separated by SPACE.
APPEND GT_LOG.
Update FLAG_ATTACH
GS_ZTIFF_ATTACH-FLAG_ATTACH = 'X'.
GS_ZTIFF_ATTACH-ENTRY_DATE = SY-DATUM.
GS_ZTIFF_ATTACH-WI_ID = GS_FINAL-WI_ID.
MODIFY ZTIFF_ATTACH FROM GS_ZTIFF_ATTACH.
IF SY-SUBRC EQ 0.
PERFORM execute_workitem.
ENDIF.
ENDIF.
ELSE.
PERFORM execute_workitem.
ENDIF.
ENDLOOP.
ENDFORM. "ATTACHMENT
&----
*& Form Upload_object.
&----
Upload object
----
FORM Upload_object.
DATA : l_file TYPE STRING,
l_text TYPE STRING.
*uploading object from Application server
call function 'SCMS_UPLOAD'
EXPORTING
filename = L_FILE_PATH
binary = 'X'
frontend = ' '
IMPORTING
filesize = l_size
TABLES
data = l_data
EXCEPTIONS
error = 1
others = 2.
if sy-subrc <> 0.
Appending Log file
l_file = GS_ZTIFF_ATTACH-FILE_NAME.
l_text = ': Error occured while opening the file :'.
Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER
l_WI_ID
l_text L_FILE_PATH INTO
GT_LOG separated by SPACE.
APPEND GT_LOG.
EXIT.
ELSE.
downloading
CALL FUNCTION 'SCMS_DOWNLOAD'
EXPORTING
FILENAME = L_PATH
FILESIZE = l_size
BINARY = 'X'
FRONTEND = 'X'
MIMETYPE =
P_TRANSFER_PHIO =
TABLES
DATA = l_data
EXCEPTIONS
ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
l_file = GS_ZTIFF_ATTACH-FILE_NAME.
l_text = ': Error occured while downloading the file :'.
Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER
l_WI_ID
l_text L_FILE_PATH INTO
GT_LOG separated by SPACE.
APPEND GT_LOG.
EXIT.
endif.
ENDIF.
ENDFORM. "Upload_object
&----
*& Form execute_workitem.
&----
execute workitem
----
FORM execute_workitem.
CALL FUNCTION 'SWW_WI_ADMIN_COMPLETE'
EXPORTING
wi_id = GS_FINAL-WI_ID
do_commit = 'X'
authorization_checked = 'X'
EXCEPTIONS
update_failed = 01
infeasible_state_transition = 03
no_authorization = 02.
IF sy-subrc EQ 0.
COMMIT WORK.
**- get workitem header
*
CALL FUNCTION 'SWL_WI_HEADER_READ'
*
EXPORTING
*
wi_id = GS_FINAL-WI_ID
CHANGING
*
workitem = g_workitem
*
EXCEPTIONS
*
workitem_not_found = 1
*
OTHERS = 2.
*
ELSE.
*
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
**
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
**
subrc = sy-subrc.
**
EXIT.
MESSAGE s552(wo).
ENDIF.
ENDFORM. "execute_workitem
**********************************************************************************
Do reward points if helpful .
Cheers
Hemant
Message was edited by:
hemant k
12-06-2007 4:30 AM
&----
*& Report ZNNR_EMAIL
*&
&----
*&
*&
&----
REPORT ZNNR_EMAIL.
PARAMETERS: psubject(40) type c default 'Hello',
p_email(40) type c default 'test@sapdev.co.uk' .
data: it_packing_list like sopcklsti1 occurs 0 with header line,
it_contents like solisti1 occurs 0 with header line,
it_receivers like somlreci1 occurs 0 with header line,
it_attachment like solisti1 occurs 0 with header line,
gd_cnt type i,
gd_sent_all(1) type c,
gd_doc_data like sodocchgi1,
gd_error type sy-subrc.
data: it_message type standard table of SOLISTI1 initial size 0
with header line.
***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
Perform populate_message_table.
*Send email message, although is not sent from SAP until mail send
*program has been executed(rsconn01)
PERFORM send_email_message.
*Instructs mail send program for SAPCONNECT to send email(rsconn01)
perform initiate_mail_execute_program.
&----
*& Form POPULATE_MESSAGE_TABLE
&----
Adds text to email text table
----
form populate_message_table.
Append 'Email line 1' to it_message.
Append 'Email line 2' to it_message.
Append 'Email line 3' to it_message.
Append 'Email line 4' to it_message.
endform. " POPULATE_MESSAGE_TABLE
&----
*& Form SEND_EMAIL_MESSAGE
&----
Send email message
----
form send_email_message.
Fill the document data.
gd_doc_data-doc_size = 1.
Populate the subject/generic message attributes
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SAPRPT'.
gd_doc_data-obj_descr = psubject.
gd_doc_data-sensitivty = 'F'.
Describe the body of the message
clear it_packing_list.
refresh it_packing_list.
it_packing_list-transf_bin = space.
it_packing_list-head_start = 1.
it_packing_list-head_num = 0.
it_packing_list-body_start = 1.
describe table it_message lines it_packing_list-body_num.
it_packing_list-doc_type = 'RAW'.
append it_packing_list.
Add the recipients email address
clear it_receivers.
refresh 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'.
append it_receivers.
Call the FM to post the message to SAPMAIL
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = gd_doc_data
put_in_outbox = 'X'
importing
sent_to_all = gd_sent_all
tables
packing_list = it_packing_list
contents_txt = it_message
receivers = it_receivers
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.
Store function module return code
gd_error = sy-subrc.
Get it_receivers return code
loop at it_receivers.
endloop.
endform. " SEND_EMAIL_MESSAGE
&----
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
&----
Instructs mail send program for SAPCONNECT to send email.
----
form initiate_mail_execute_program.
wait up to 2 seconds.
if gd_error eq 0.
submit rsconn01 with mode = 'INT'
with output = 'X'
and return.
endif.
endform. " INITIATE_MAIL_EXECUTE_PROGRAM
12-06-2007 4:40 AM
Hi Kit,
You can use following FM's
call function to send email
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = docdata
document_type = 'RAW'
commit_work = 'X'
TABLES
object_header = t_objhead
object_content = t_objtxt
receivers = t_receiver
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.
**************************
also if you want to attach any file with the mail u can use following FM
Sending the document
IF NOT l_t_reclist[] IS INITIAL.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = l_doc_chng
commit_work = 'X'
TABLES
packing_list = l_t_objpack
object_header = l_t_objhead
contents_bin = l_t_objbin
contents_txt = l_t_objtxt
receivers = l_t_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
ENDIF.
hope this helps..
regards,
vikas.
plz reward if useful
01-17-2008 12:41 PM
Hi Kit,
DATA : l_message(100) TYPE c.
DATA : l_subject(50) TYPE c.
DATA : g_email(50) TYPE c value 'saptech@gmail.com'.
DATA : objheader LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA object_id LIKE soodk.
DATA : docdata LIKE sodocchgi1 OCCURS 0 WITH HEADER LINE.
DATA : objcontents LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA : receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
receivers-receiver = g_email.
MOVE : 'X' TO receivers-express,
'U' TO receivers-rec_type.
APPEND receivers.
CONCATENATE 'Please note that your cheque numbered' p_cheque 'has been dishonoured' INTO l_message SEPARATED BY space.
CONCATENATE 'Cheque numbered' p_cheque 'dishonoured' INTO l_subject SEPARATED BY space.
objheader-line = 'Cheque Dishonoured!'.
APPEND objheader.
mail contents
objcontents-line = l_message.
APPEND objcontents.
objcontents-line = 'You are requested to contact the nearest Regional Office immediately'.
APPEND objcontents.
mail subject
docdata-obj_descr = l_subject.
APPEND docdata.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = docdata
DOCUMENT_TYPE = 'RAW'
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
SENT_TO_ALL =
new_object_id = object_id
TABLES
object_header = objheader
object_content = objcontents
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
receivers = receivers
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
.
IF sy-subrc <> 0.
MESSAGE 'The mail could not be sent to the Customer.' TYPE 'I'.
ELSE.
MESSAGE 'Mail indicating the dishonour of cheque sent to the customer' TYPE 'I'.
ENDIF.