Application Development 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: 

FM to send text message external email (without any attachments)

manoj_goyal2
Participant
0 Kudos

Hi Guys,

Can somebody tell me the function module and share the code to send simple text message email to external email.

Thanks,

mini

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Try the following code

DATA: doc_chng       LIKE sodocchgi1,
      subject(6)     TYPE c VALUE 'test',
      reclist        LIKE somlreci1  OCCURS 5 WITH HEADER LINE,
      line(87)       TYPE c,
      objtxt         LIKE solisti1   OCCURS 10 WITH HEADER LINE,
      tab_lines      LIKE sy-tabix,
      objpack        LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
      sender_address LIKE soextreci1-receiver.


doc_chng-obj_name   = sy-title.
doc_chng-obj_descr  = subject.

reclist-receiver  = 'email address in the format'. " Put email address here
reclist-rec_type  = 'U'.
APPEND reclist.

* You can add more receivers to the same table

line = 'This is a test email for checking if the external email is working or not'.
WRITE line TO objtxt.
APPEND objtxt.

CLEAR line.
WRITE line TO objtxt.
APPEND objtxt.

line = 'All the best with email from R/3'.
WRITE line TO objtxt.
APPEND objtxt.
CLEAR  line.
CLEAR  objtxt.
line = '-----------------------------------------------------------------'.
WRITE line TO objtxt.
APPEND objtxt.

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.
sy-subrc = 0.
doc_chng-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.

sender_address = 'email address in the format'.

* CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
  EXPORTING
    document_data              = doc_chng
    sender_address             = sender_address       "EMAIL_FR
    sender_address_type        = 'INT'
    commit_work                = 'X'
  TABLES
    packing_list               = objpack
    contents_txt               = objtxt
    receivers                  = reclist
  EXCEPTIONS
    too_many_receivers         = 1
    document_not_sent          = 2
    operation_no_authorization = 4
    OTHERS                     = 99.

Regards,

Kinshuk

5 REPLIES 5

Former Member
0 Kudos

use this FM. SO_NEW_DOCUMENT_SEND_API1

data: list type table of abaplist with header line.
data: htmllines type table of w3html with header line.
 
data: maildata like sodocchgi1.
data: mailtxt like solisti1 occurs 10 with header line.
data: mailrec like somlrec90 occurs 0 with header line.
 
start-of-selection.
 
 
Produce a list 
do 100 times.
write:/ sy-index, at 30 sy-index, at 50 sy-index.
enddo.
 
 
Save the list 
call function 'SAVE_LIST'
tables
listobject = list
exceptions
list_index_invalid = 1
others = 2.
 
 
Convert the list 
call function 'WWW_LIST_TO_HTML'
tables
html = htmllines.
 
 
Send mail 
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test Subject'.
 
loop at htmllines.
mailtxt = htmllines.
append mailtxt.
endloop.
 
mailrec-receiver = 'you@yourcompany.com'.
mailrec-rec_type = 'U'.
append mailrec.
 
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'HTM'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
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.

former_member194669
Active Contributor
0 Kudos

Check this

https://forums.sdn.sap.com/search.jspa?threadID=&q=emailANDwithoutANDattachment&objID=f50&dateRange=all&numResults=15

PS please use search before posting

Former Member
0 Kudos

U can use FM SO_NEW_DOCUMENT_ATT_SEND_API1. For details check this sample code.

report zmail.

  • Parameters

PARAMETERS: SUB LIKE SOMLRECI1-RECEIVER

DEFAULT 'Subject line'.

PARAMETERS: EAD LIKE SOMLRECI1-RECEIVER." Mail id

PARAMETERS: L01 LIKE SOLISTI1-LINE

DEFAULT 'Body text'.

PARAMETERS: L02 LIKE SOLISTI1-LINE.

PARAMETERS: L03 LIKE SOLISTI1-LINE.

PARAMETERS: L04 LIKE SOLISTI1-LINE.

PARAMETERS: L05 LIKE SOLISTI1-LINE.

PARAMETERS: L06 LIKE SOLISTI1-LINE.

PARAMETERS: L07 LIKE SOLISTI1-LINE.

PARAMETERS: L08 LIKE SOLISTI1-LINE.

PARAMETERS: L09 LIKE SOLISTI1-LINE.

PARAMETERS: L10 LIKE SOLISTI1-LINE.

  • Macro

DEFINE M_LINEADD.

IF NOT &1 IS INITIAL.

TAB = &1. APPEND TAB.

ENDIF.

END-OF-DEFINITION.

  • Variables

DATA: BEGIN OF TAB OCCURS 10.

DATA: LINE(40).

DATA: END OF TAB.

DATA: RC LIKE SY-SUBRC.

  • Main program

START-OF-SELECTION.

REFRESH TAB.

M_LINEADD L01.

M_LINEADD L02.

M_LINEADD L03.

M_LINEADD L04.

M_LINEADD L05.

M_LINEADD L06.

M_LINEADD L07.

M_LINEADD L08.

M_LINEADD L09.

M_LINEADD L10.

PERFORM Z_SEND_EMAIL TABLES TAB USING EAD SUB RC.

IF RC IS INITIAL.

WRITE: / 'Your e-mail has been sent successfully.'.

ELSE.

WRITE: / 'Your attempt to send an e-mail failed.'.

ENDIF.

----


  • FORM Z_SEND_EMAIL *

----


  • --> ITAB *

  • --> EMAILADDRESS *

  • --> SUBJECTLINE *

  • --> RETURNCODE *

----


FORM Z_SEND_EMAIL TABLES ITAB

USING EMAILADDRESS TYPE C

SUBJECTLINE TYPE C

RETURNCODE LIKE SY-SUBRC.

DATA: DOCUMENT LIKE SODOCCHGI1.

DATA: PACKLIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.

DATA: CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

DATA: RECVLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.

DATA: FIELDLEN TYPE P.

DATA: TABLINES TYPE P.

*

  • Initialization

CLEAR: CONTENTS, DOCUMENT, PACKLIST, RECVLIST.

REFRESH: CONTENTS, PACKLIST, RECVLIST.

RETURNCODE = 12.

  • Contents

CONCATENATE

'The following message has been sent from SAP'

SY-SYSID

SY-MANDT

'(Do not reply to this message):'

INTO CONTENTS SEPARATED BY ' '.

APPEND CONTENTS.

CONTENTS = SY-ULINE(40).

APPEND CONTENTS.

LOOP AT ITAB.

CONTENTS = ITAB.

APPEND CONTENTS.

ENDLOOP.

CONTENTS = SY-ULINE(40).

APPEND CONTENTS.

  • Document

DOCUMENT-OBJ_NAME = 'EMAIL'.

DOCUMENT-OBJ_DESCR = SUBJECTLINE.

DOCUMENT-OBJ_LANGU = SY-LANGU.

DOCUMENT-OBJ_EXPDAT = SY-DATUM.

DOCUMENT-SENSITIVTY = 'F'.

DOCUMENT-OBJ_PRIO = 9.

DOCUMENT-NO_CHANGE = 'X'.

DOCUMENT-PRIORITY = 9.

DOCUMENT-EXPIRY_DAT = SY-DATUM.

DESCRIBE FIELD CONTENTS-LINE LENGTH FIELDLEN.

DESCRIBE TABLE CONTENTS LINES TABLINES.

MULTIPLY FIELDLEN BY TABLINES.

DOCUMENT-DOC_SIZE = FIELDLEN.

  • Packing list

PACKLIST-TRANSF_BIN = SPACE.

PACKLIST-HEAD_START = 1.

PACKLIST-HEAD_NUM = 0.

PACKLIST-BODY_START = 1.

DESCRIBE TABLE CONTENTS LINES PACKLIST-BODY_NUM.

PACKLIST-DOC_TYPE = 'RAW'.

APPEND PACKLIST.

  • Receiver list

RECVLIST-RECEIVER = EMAILADDRESS.

RECVLIST-REC_TYPE = 'U'.

RECVLIST-COM_TYPE = 'INT'.

RECVLIST-NOTIF_DEL = 'X'.

RECVLIST-NOTIF_NDEL = 'X'.

APPEND RECVLIST.

  • Call the mail function

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOCUMENT

PUT_IN_OUTBOX = 'X'

TABLES

PACKING_LIST = PACKLIST

CONTENTS_TXT = CONTENTS

RECEIVERS = RECVLIST

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.

RETURNCODE = SY-SUBRC.

*

ENDFORM.

Former Member
0 Kudos

Try this link.

http://www.sapdevelopment.co.uk/reporting/email/attach_xls.htm

SO_DOCUMENT_SEND_API1

Send new document with attachments via RFC

SO_NEW_DOCUMENT_ATT_SEND_API1

SO_NEW_DOCUMENT_SEND_API1

Former Member
0 Kudos

Hi,

Try the following code

DATA: doc_chng       LIKE sodocchgi1,
      subject(6)     TYPE c VALUE 'test',
      reclist        LIKE somlreci1  OCCURS 5 WITH HEADER LINE,
      line(87)       TYPE c,
      objtxt         LIKE solisti1   OCCURS 10 WITH HEADER LINE,
      tab_lines      LIKE sy-tabix,
      objpack        LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
      sender_address LIKE soextreci1-receiver.


doc_chng-obj_name   = sy-title.
doc_chng-obj_descr  = subject.

reclist-receiver  = 'email address in the format'. " Put email address here
reclist-rec_type  = 'U'.
APPEND reclist.

* You can add more receivers to the same table

line = 'This is a test email for checking if the external email is working or not'.
WRITE line TO objtxt.
APPEND objtxt.

CLEAR line.
WRITE line TO objtxt.
APPEND objtxt.

line = 'All the best with email from R/3'.
WRITE line TO objtxt.
APPEND objtxt.
CLEAR  line.
CLEAR  objtxt.
line = '-----------------------------------------------------------------'.
WRITE line TO objtxt.
APPEND objtxt.

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.
sy-subrc = 0.
doc_chng-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.

sender_address = 'email address in the format'.

* CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
  EXPORTING
    document_data              = doc_chng
    sender_address             = sender_address       "EMAIL_FR
    sender_address_type        = 'INT'
    commit_work                = 'X'
  TABLES
    packing_list               = objpack
    contents_txt               = objtxt
    receivers                  = reclist
  EXCEPTIONS
    too_many_receivers         = 1
    document_not_sent          = 2
    operation_no_authorization = 4
    OTHERS                     = 99.

Regards,

Kinshuk