2008 May 20 7:08 AM
hi experts,
i have been using SO_DOCUMENT_SEND_API1 function module to send a mail, i have sucessfully used it to send a mail but the subject line of the mail is coming empty. i want to display some text in it, how can it possible
Hi
Hope it will help you.
In the Code, bold lines are the description for the mail.
Reward if help.
&----
*& Report ZEMAIL_SIVA
*&
&----
*&
*&
&----
REPORT zemail_siva.
DATA : gd_doc_data LIKE sodocchgi1,
l_i_mail TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,
it_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE.
DATA: w_pack TYPE sopcklsti1,
i_pack TYPE TABLE OF sopcklsti1.
PARAMETERS : p_email(100) TYPE c.
gd_doc_data-obj_descr = 'TEST EMAIL FROM ABAP SE TEAM'.
l_i_mail-line = 'Testing the Mail from ABAP on 31st March 2008'.
APPEND l_i_mail.
it_receivers-receiver = p_email.
it_receivers-rec_type = 'A'.
it_receivers-com_type = 'INT'.
*it_receivers-notif_del = 'X'.
*it_receivers-notif_ndel = 'X'.
APPEND it_receivers.
CLEAR w_pack.
w_pack-head_start = 1.
w_pack-head_num = 0.
w_pack-body_start = 1.
DESCRIBE TABLE l_i_mail LINES w_pack-body_num.
w_pack-doc_type = 'RAW'.
w_pack-doc_size = w_pack-body_num * 255.
APPEND w_pack TO i_pack.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gd_doc_data
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = i_pack
OBJECT_HEADER =
CONTENTS_BIN =
contents_txt = l_i_mail
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
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
..
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
WRITE : 'Mail Sent to specified address'.
ENDIF.
2008 May 20 7:12 AM
hi kiran kumar
Ask to BASIS Team. u are asking them how is work by Email Configuration?
They can solve you.
Regards,
S.Suresh.
2008 May 20 7:12 AM
Hi
Hope it will help you.
In the Code, bold lines are the description for the mail.
Reward if help.
&----
*& Report ZEMAIL_SIVA
*&
&----
*&
*&
&----
REPORT zemail_siva.
DATA : gd_doc_data LIKE sodocchgi1,
l_i_mail TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,
it_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE.
DATA: w_pack TYPE sopcklsti1,
i_pack TYPE TABLE OF sopcklsti1.
PARAMETERS : p_email(100) TYPE c.
gd_doc_data-obj_descr = 'TEST EMAIL FROM ABAP SE TEAM'.
l_i_mail-line = 'Testing the Mail from ABAP on 31st March 2008'.
APPEND l_i_mail.
it_receivers-receiver = p_email.
it_receivers-rec_type = 'A'.
it_receivers-com_type = 'INT'.
*it_receivers-notif_del = 'X'.
*it_receivers-notif_ndel = 'X'.
APPEND it_receivers.
CLEAR w_pack.
w_pack-head_start = 1.
w_pack-head_num = 0.
w_pack-body_start = 1.
DESCRIBE TABLE l_i_mail LINES w_pack-body_num.
w_pack-doc_type = 'RAW'.
w_pack-doc_size = w_pack-body_num * 255.
APPEND w_pack TO i_pack.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gd_doc_data
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = i_pack
OBJECT_HEADER =
CONTENTS_BIN =
contents_txt = l_i_mail
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
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
..
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
WRITE : 'Mail Sent to specified address'.
ENDIF.
2008 May 20 7:20 AM
Hi,
Compare this code with your code and pass all the parameters you have missed.code according to this code ,it will definitely work.
codeDATA:
IT_FORMAT TYPE STANDARD TABLE OF SOPCKLSTI1 WITH HEADER LINE,
IT_DEST TYPE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
IT_TEXT TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
IT_SUBJ TYPE STANDARD TABLE OF SODOCCHGI1 WITH HEADER LINE.
IMPORT IT_SUBJ FROM MEMORY ID 'SUBL'.
IMPORT IT_FORMAT FROM MEMORY ID 'FORMAT'.
IMPORT IT_TEXT FROM MEMORY ID 'TEXT'.
IMPORT IT_DEST FROM MEMORY ID 'DEST'.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = IT_SUBJ
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = IT_FORMAT
CONTENTS_TXT = IT_TEXT
RECEIVERS = IT_DEST
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.[/code]
It should only be a structure.
codedata: wa_SUBJ TYPE SODOCCHGI1 .[/code]
Make sure it is this way in the importing and exporting progams.
Regards,
Raj.
2008 May 20 11:16 AM
hi experts,
Using the above function module, i could create an attach ment of all the data to be send, but i want all the data in the mail body only ,but not in attachment file, how can i do it, what parameters have to be used to populate my data in internal table to the above function module to display in mail body
2008 May 20 7:24 AM
Hello ,
Goto to the SE37 and open the FM and
Goto -> Documentation...
This is the way to check the properties of FM related to Subject in Email
And also look at this program....
FORM mail_body.
DATA: l_l1 TYPE i.
CONSTANTS: lc_0 VALUE '0',
lc_1 VALUE '1',
lc_raw(3) TYPE c VALUE 'RAW'.
REFRESH: i_objtxt[],
i_objpack[].
CLEAR: wa_objtxt.
SORT i_fail BY type.
* MAIL BODY
* Customer Number
CONCATENATE text-t18
w_kunnr
INTO wa_objtxt
SEPARATED BY space.
APPEND wa_objtxt TO i_objtxt.
CLEAR wa_objtxt. "blank line
APPEND wa_objtxt TO i_objtxt.
* Complete Payment Doc Nos
wa_objtxt = text-t16.
APPEND wa_objtxt TO i_objtxt.
CLEAR: wa_fail, wa_objtxt.
APPEND wa_objtxt TO i_objtxt.
MOVE: text-t23 TO wa_objtxt,
text-t24 TO wa_objtxt+17(5),
text-t25 TO wa_objtxt+22(6),
text-t26 TO wa_objtxt+40(18).
APPEND wa_objtxt TO i_objtxt.
CLEAR wa_objtxt.
LOOP AT i_fail INTO wa_fail WHERE type EQ c_comp.
DIVIDE wa_fail-disper BY 100.
MOVE: wa_fail-belnr TO wa_objtxt,
wa_fail-buzei TO wa_objtxt+17(5),
wa_fail-wrbtr TO wa_objtxt+22(16),
wa_fail-disper TO wa_objtxt+40(18).
APPEND wa_objtxt TO i_objtxt.
CLEAR: wa_fail, wa_objtxt.
ENDLOOP.
* MAIL BODY-LENGTH
DESCRIBE TABLE i_objtxt LINES l_l1.
CLEAR wa_objpack-transf_bin.
wa_objpack-head_start = lc_1.
wa_objpack-head_num = lc_0.
wa_objpack-body_start = lc_1.
wa_objpack-body_num = l_l1.
wa_objpack-doc_type = lc_raw.
APPEND wa_objpack TO i_objpack.
*SUBJECT
CLEAR wa_doc_chng.
wa_doc_chng-obj_name = text-t15.
wa_doc_chng-obj_descr = text-t15.
ENDFORM. " mail_body
*&---------------------------------------------------------------------*
*& Form send_mail
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM send_mail.
CONSTANTS: lc_c TYPE so_escape VALUE 'C',
lc_mode(3) TYPE c VALUE 'INT'.
CLEAR: wa_reclist, i_reclist[].
*Recipient list
wa_reclist-receiver = text-t14. "DL
wa_reclist-rec_type = lc_c.
APPEND wa_reclist TO i_reclist.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = c_x
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
packing_list = i_objpack
* OBJECT_HEADER =
* CONTENTS_BIN =
contents_txt = i_objtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = i_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.
* ENDIF.
IF sy-subrc IS INITIAL.
*Send mail immediately
SUBMIT rsconn01 USING SELECTION-SET lc_mode AND RETURN.
CALL FUNCTION 'SO_DEQUEUE_UPDATE_LOCKS'.
ELSE.
RAISE mail_not_sent.
ENDIF.
ENDFORM. " send_mail
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |