Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Regarding mail

Former Member
0 Likes
828

HI ,

can anybody send me the sample code for sending the the E mail trough SAP

7 REPLIES 7
Read only

Former Member
0 Likes
792

HI shaik...

Iam sending the code mail..processing...

.

***mail

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.

Read only

Former Member
Read only

Former Member
0 Likes
792

Check following link....

http://www.sap-img.com/fu016.htm

http://www.erpgenie.com/abap/code/abap31.htm

Read only

Former Member
0 Likes
792

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

Read only

Former Member
0 Likes
792

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

Read only

Former Member
0 Likes
792

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.

Read only

Former Member
0 Likes
792

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