‎2008 Jul 30 10:21 AM
HI ,
can anybody send me the sample code for sending the the E mail trough SAP
‎2008 Jul 30 10:23 AM
HI shaik...
Iam sending the code mail..processing...
.
lwa_docu_data-obj_name = 'some text'.
lwa_docu_data-obj_descr = 'some text'.
lt_attach1-line = 'See the attachment'.
APPEND lt_attach1.
CLEAR lt_attach1.
lt_attach1-line = 'S-> Success'.
APPEND lt_attach1.
CLEAR lt_attach1.
lt_attach1-line = 'E-> Error'.
APPEND lt_attach1.
DESCRIBE TABLE lt_attach1 LINES lv_lines.
READ TABLE lt_attach INDEX lv_lines.
lwa_docu_data-doc_size = ( lv_lines - 1 ) * 255 + STRLEN( lt_attach1 ).
lt_obj_header-head_start = 1.
lt_obj_header-head_num = 0.
lt_obj_header-body_start = 1.
lt_obj_header-body_num = lv_lines.
lt_obj_header-doc_type = 'RAW'.
APPEND lt_obj_header.
CLEAR lt_obj_header.
LOOP AT gt_mail INTO gs_mail.
CONCATENATE gs_mail-no_rec
gs_mail-no_sap
gs_mail-no_suc
gs_mail-no_err
gs_mail-status
gs_mail-regid
gs_mail-bpnum
gs_mail-desc INTO lt_attach SEPARATED BY con_tab.
CONCATENATE con_cret lt_attach INTO lt_attach.
APPEND lt_attach.
CLEAR: gs_mail, lt_attach.
ENDLOOP.
GET PARAMETER ID 'ZMAIL' FIELD gv_code.
SELECT zzmailid
FROM zweb_codes
INTO TABLE lt_mail
WHERE zzcode EQ gv_code.
LOOP AT lt_mail INTO lwa_mail.
lv_mail = lwa_mail-mailid.
lt_rec_list-receiver = lv_mail.
lt_rec_list-rec_type = 'U'.
APPEND lt_rec_list.
clear: lwa_mail, lv_mail.
ENDLOOP.
DESCRIBE TABLE lt_attach LINES lv_lines.
Object Attachment detail
lt_obj_header-transf_bin = 'X'.
lt_obj_header-head_start = 1.
lt_obj_header-head_num = 1.
lt_obj_header-body_start = 1.
lt_obj_header-body_num = lv_lines.
DESCRIBE TABLE lt_attach LINES lt_obj_header-body_num.
lt_obj_header-obj_name = 'EVENTS'.
lt_obj_header-doc_type = 'XLS'.
lt_obj_header-obj_descr = 'EVENTS'.
lt_obj_header-doc_size = lt_obj_header-body_num * 255.
APPEND lt_obj_header.
CLEAR lt_obj_header.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lwa_docu_data
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = lt_obj_header
contents_bin = lt_attach
contents_txt = lt_attach1
receivers = lt_rec_list
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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
Regadrs,
Jayan.
‎2008 Jul 30 10:24 AM
‎2008 Jul 30 10:24 AM
Check following link....
http://www.sap-img.com/fu016.htm
http://www.erpgenie.com/abap/code/abap31.htm
‎2008 Jul 30 10:24 AM
Hi,
here is the code for sending mail ....
start-of-selection.
perform send_mail.
FORM SEND_MAIL.
PARAMETERS FOR SO_NEW_DOCUMENT_SEND_API1
DATA: W_OBJECT_ID LIKE SOODK,
W_SONV_FLAG LIKE SONV-FLAG.
DATA: T_RECEIVERS LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE,
W_OBJECT_CONTENT LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,
W_DOC_DATA LIKE SODOCCHGI1 OCCURS 0 WITH HEADER LINE.
*
DATA: W_DATE(10).
CLEAR T_RECEIVERS.
T_RECEIVERS-RECEIVER = SY-UNAME.
T_RECEIVERS-REC_TYPE = 'B'.
T_RECEIVERS-EXPRESS = ' '.
APPEND T_RECEIVERS.
W_DOC_DATA-OBJ_DESCR = 'Change Expiry date'.
Delivery NO
CONCATENATE 'Delivery No' M_VMVMA-VBELN INTO W_OBJECT_CONTENT
SEPARATED BY ' '.
APPEND W_OBJECT_CONTENT.
material Batch
CONCATENATE 'Material' ZGREC-MATNR 'Batch' ZGREC-CHARG
INTO W_OBJECT_CONTENT SEPARATED BY ' '.
APPEND W_OBJECT_CONTENT.
Expiry date
WRITE B_VFDAT TO W_DATE DD/MM/YYYY.
CONCATENATE 'Change expiry date to' W_DATE
INTO W_OBJECT_CONTENT SEPARATED BY ' '.
APPEND W_OBJECT_CONTENT.
*
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = W_DOC_DATA
PUT_IN_OUTBOX = ' '
TABLES
OBJECT_CONTENT = W_OBJECT_CONTENT
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.
ENDFORM. " SEND_MAIL
Thanks & Regards
Ashu Singh
‎2008 Jul 30 10:25 AM
Hi
Try this sample code :-
REPORT ZREPORT_TO_EMAIL NO STANDARD PAGE HEADING LINE-SIZE 200.
DATA : BEGIN OF ITAB OCCURS 0,
PERNR LIKE PA0001-PERNR,
ENAME LIKE PA0001-ENAME,
END OF ITAB.
DATA: message_content LIKE soli OCCURS 10 WITH HEADER LINE,
receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE,
packing_list LIKE soxpl OCCURS 2 WITH HEADER LINE,
listobject LIKE abaplist OCCURS 10,
compressed_attachment LIKE soli OCCURS 100 WITH HEADER LINE,
w_object_hd_change LIKE sood1,
compressed_size LIKE sy-index.
START-OF-SELECTION.
SELECT PERNR ENAME
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM PA0001
WHERE PERNR < 50.
LOOP AT ITAB.
WRITE :/02 SY-VLINE , ITAB-PERNR, 15 SY-VLINE , ITAB-ENAME, 50
SY-VLINE.
ENDLOOP.
Receivers
receiver_list-recextnam = 'EXTERNAL-MAIL- "-->
EMAIL ADDRESS
RECEIVER_list-RECESC = 'E'. "<-
RECEIVER_list-SNDART = 'INT'."<-
RECEIVER_list-SNDPRI = '1'."<-
APPEND receiver_list.
General data
w_object_hd_change-objla = sy-langu.
w_object_hd_change-objnam = 'Object name'.
w_object_hd_change-objsns = 'P'.
Mail subject
w_object_hd_change-objdes = 'Message subject'.
Mail body
APPEND 'Message content' TO message_content.
Attachment
CALL FUNCTION 'SAVE_LIST'
EXPORTING
list_index = '0'
TABLES
listobject = listobject.
CALL FUNCTION 'TABLE_COMPRESS'
IMPORTING
compressed_size = compressed_size
TABLES
in = listobject
out = compressed_attachment.
DESCRIBE TABLE compressed_attachment.
CLEAR packing_list.
packing_list-transf_bin = 'X'.
packing_list-head_start = 0.
packing_list-head_num = 0.
packing_list-body_start = 1.
packing_list-body_num = sy-tfill.
packing_list-objtp = 'ALI'.
packing_list-objnam = 'Object name'.
packing_list-objdes = 'Attachment description'.
packing_list-objlen = compressed_size.
APPEND packing_list.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = w_object_hd_change
object_type = 'RAW'
owner = sy-uname
TABLES
objcont = message_content
receivers = receiver_list
packing_list = packing_list
att_cont = compressed_attachment.
Regards
Divya
‎2008 Jul 30 10:27 AM
Hi,
plz chk the below code:
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.
Hope this helps.
thanx,
dhanashri.
‎2008 Jul 30 10:31 AM
below is an mail program but there is submit command which is calling a classical report. This report is an attached to this mail program. write Email address of receiver.
tables :kna1.
Data Declaration
data: docdata like sodocchgi1,
objpack like sopcklsti1 occurs 1 with header line,
objhead like solisti1 occurs 1 with header line,
objtxt like solisti1 occurs 10 with header line,
objbin like solisti1 occurs 10 with header line,
objhex like solix occurs 10 with header line,
reclist like somlreci1 occurs 1 with header line.
data: listobject like abaplist occurs 1 with header line.
data: tab_lines type i,
doc_size type i,
att_type like soodk-objtp.
data : begin of it_cust occurs 0,
kunnr like kna1-kunnr,
name1 like kna1-name1,
ort01 like kna1-ort01,
end of it_cust.
selection-screen begin of block b1 with frame title text-000.
select-options : p_kunnr for kna1-kunnr.
selection-screen end of block b1.
refresh it_cust.
clear it_cust.
select kunnr name1 ort01
into table it_cust
from kna1
where kunnr in p_kunnr.
loop at it_cust.
refresh:objpack,objhead,objtxt,objbin,objhex,reclist,listobject.
clear:objpack,objhead,objtxt,objbin,objhex,reclist,listobject.
objbin = ' | '. append objbin.
objpack-head_start = 1.
NOTE: Create ALI/OTF Document in Spool
ALI Document can be created by displaying a list and selecting
menue System -> List -> Print (only put to Spool).
OTF Document can be created running report SF_EXAMPLE_01 in system.
*
describe table objbin lines tab_lines.
Example used here:
create list in memory
submit zsd_cust_os_mail_att with s_kunnr = it_cust-kunnr
exporting list to memory and return.
and read list from memory into table
call function 'LIST_FROM_MEMORY'
tables
listobject = listobject
exceptions
others = 1.
if sy-subrc <> 0.
continue.
endif.
*packing_list = objpack.
Because listobject is of size RAW(1000)
and objbin is of size CHAR(255) we make this table copy
call function 'TABLE_COMPRESS'
IMPORTING
COMPRESSED_SIZE =
tables
in = listobject
out = objbin
exceptions
others = 1.
if sy-subrc <> 0.
message id '61' type 'E' number '731'
with 'TABLE_COMPRESS'.
endif.
*ELSE.
NOTE: Creation of attachment is finished yet.
For your report, the attachment should be placed into table
objtxt for plain text or
objbin for binary content.
Now create the message and send the document.'of recipients'.
Create Message Body
Title and Description
docdata-obj_name = 'PI_CUST_REMINDER'.
docdata-obj_descr = 'Gentle Payment Reminder'.
Main Text
objtxt = 'Dear Customer.'.
append objtxt.
objtxt = 'Please find attachment as above.'.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
objtxt = 'Have a nice day.'.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
objtxt = 'Regards.'.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
objtxt = 'PI Industries Ltd.'.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
objtxt+0(255) = ''.
append objtxt.
concatenate 'This e-mail/fax contains confidential information and is'
'for the exclusive use of the addressee/s. If you are not the'
'addressee, then any distribution, copying or use of this e-mail/fax is'
'prohibited. If received in error, please advise the' into objtxt separated by space.
append objtxt.
concatenate 'sender and delete/destroy it immediately. We accept no liability for'
'any loss or damage suffered by any person arising from use of this'
'e-mail/fax.' into objtxt separated by space.
append objtxt.
Write Packing List (Main)
describe table objtxt lines tab_lines.
read table objtxt index tab_lines.
docdata-doc_size = ( tab_lines - 1 ) * 255 + strlen( objtxt ).
clear objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
append objpack.
Create Message Attachment
Write Packing List (Attachment)
att_type = 'ALI'.
describe table objbin lines tab_lines.
read table objbin index tab_lines.
objpack-doc_size = ( tab_lines - 1 ) * 255 + strlen( objbin ).
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = 'Attached Document'.
append objpack.
Create receiver list
reclist-receiver = 'Email address of receiver'
reclist-rec_type = 'U'.
append reclist.
*reclist-receiver = sy-uname. "<-- change internal user
*reclist-rec_type = 'B'.
*APPEND reclist.
Send Message
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = docdata
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
tables
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
CONTENTS_HEX = objhex
OBJECT_PARA =
OBJECT_PARB =
receivers = reclist.
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 id 'SO' type 'S' number '023'
with docdata-obj_name.
endif.
endloop.
regards
rajesh