09-17-2008 8:52 PM
Hi Guys,
Can somebody tell me the function module and share the code to send simple text message email to external email.
Thanks,
mini
09-17-2008 9:40 PM
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
09-17-2008 9:05 PM
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.
09-17-2008 9:05 PM
Check this
https://forums.sdn.sap.com/search.jspa?threadID=&q=emailANDwithoutANDattachment&objID=f50&dateRange=all&numResults=15
PS please use search before posting
a®
09-17-2008 9:08 PM
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.
09-17-2008 9:08 PM
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
09-17-2008 9:40 PM
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