‎2006 Dec 22 3:10 AM
hi,
i need to send my output to external mail as well ftp the file.
i now how to do ftp the file bu tnot having knowledge how to send mail to external id's.
can anyone send me the sample code.
regards
‎2006 Dec 22 3:19 AM
Check the FM : SO_DOCUMENT_SEND_API1
Check this relevant code
IT_PACKING_LIST-TRANSF_BIN = 'X'.
IT_PACKING_LIST-HEAD_START = 1.
IT_PACKING_LIST-HEAD_NUM = 1.
IT_PACKING_LIST-BODY_START = 1.
IT_PACKING_LIST-BODY_NUM = TAB_LINES.
describe table IT_TEMP lines TAB_LINES.
IT_OBJECT_HEADER = 'ATTACHMENT.PDF'.
append IT_OBJECT_HEADER.
IT_PACKING_LIST-DOC_TYPE = 'PDF'.
IT_PACKING_LIST-OBJ_DESCR = 'Document'(038).
IT_PACKING_LIST-OBJ_NAME = 'Document.pdf'(039).
IT_PACKING_LIST-DOC_SIZE = TAB_LINES * 255.
append IT_PACKING_LIST.
clear IT_RECEIVERS.
refresh IT_RECEIVERS.
IT_RECEIVERS-RECEIVER = LD_EMAIL.
IT_RECEIVERS-REC_TYPE = 'U'.
IT_RECEIVERS-COM_TYPE = 'INT'.
IT_RECEIVERS-NOTIF_DEL = C_X.
IT_RECEIVERS-NOTIF_NDEL = C_X.
append IT_RECEIVERS.
call function 'SO_DOCUMENT_SEND_API1'
exporting
DOCUMENT_DATA = L_DOC_DATA
PUT_IN_OUTBOX = C_X
SENDER_ADDRESS = LD_SENDER_ADDRESS
SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE
COMMIT_WORK = C_X
importing
SENT_TO_ALL = L_SENT_ALL
tables
PACKING_LIST = IT_PACKING_LIST
CONTENTS_BIN = IT_TEMP
CONTENTS_TXT = IT_MESSAGE
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 S899(M3) with 'Mail has been sent'(040).
else.
message E899(M3) with 'Mail cant be sent'(041).
endif.
refresh : IT_PACKING_LIST,IT_TEMP,IT_MESSAGE,IT_RECEIVERS.
clear : L_SENT_ALL,
LD_SENDER_ADDRESS,
LD_SENDER_ADDRESS_TYPE,
L_DOC_DATA.
*Populate_zerror_return_code
LD_ERROR = SY-SUBRC.
*Populate_zreceiver_return_code
loop at IT_RECEIVERS.
LD_RECEIVER = IT_RECEIVERS-RETRN_CODE.
endloop.
Regards
- Gopi
‎2006 Dec 22 3:17 AM
‎2006 Dec 22 3:19 AM
Check the FM : SO_DOCUMENT_SEND_API1
Check this relevant code
IT_PACKING_LIST-TRANSF_BIN = 'X'.
IT_PACKING_LIST-HEAD_START = 1.
IT_PACKING_LIST-HEAD_NUM = 1.
IT_PACKING_LIST-BODY_START = 1.
IT_PACKING_LIST-BODY_NUM = TAB_LINES.
describe table IT_TEMP lines TAB_LINES.
IT_OBJECT_HEADER = 'ATTACHMENT.PDF'.
append IT_OBJECT_HEADER.
IT_PACKING_LIST-DOC_TYPE = 'PDF'.
IT_PACKING_LIST-OBJ_DESCR = 'Document'(038).
IT_PACKING_LIST-OBJ_NAME = 'Document.pdf'(039).
IT_PACKING_LIST-DOC_SIZE = TAB_LINES * 255.
append IT_PACKING_LIST.
clear IT_RECEIVERS.
refresh IT_RECEIVERS.
IT_RECEIVERS-RECEIVER = LD_EMAIL.
IT_RECEIVERS-REC_TYPE = 'U'.
IT_RECEIVERS-COM_TYPE = 'INT'.
IT_RECEIVERS-NOTIF_DEL = C_X.
IT_RECEIVERS-NOTIF_NDEL = C_X.
append IT_RECEIVERS.
call function 'SO_DOCUMENT_SEND_API1'
exporting
DOCUMENT_DATA = L_DOC_DATA
PUT_IN_OUTBOX = C_X
SENDER_ADDRESS = LD_SENDER_ADDRESS
SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE
COMMIT_WORK = C_X
importing
SENT_TO_ALL = L_SENT_ALL
tables
PACKING_LIST = IT_PACKING_LIST
CONTENTS_BIN = IT_TEMP
CONTENTS_TXT = IT_MESSAGE
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 S899(M3) with 'Mail has been sent'(040).
else.
message E899(M3) with 'Mail cant be sent'(041).
endif.
refresh : IT_PACKING_LIST,IT_TEMP,IT_MESSAGE,IT_RECEIVERS.
clear : L_SENT_ALL,
LD_SENDER_ADDRESS,
LD_SENDER_ADDRESS_TYPE,
L_DOC_DATA.
*Populate_zerror_return_code
LD_ERROR = SY-SUBRC.
*Populate_zreceiver_return_code
loop at IT_RECEIVERS.
LD_RECEIVER = IT_RECEIVERS-RETRN_CODE.
endloop.
Regards
- Gopi
‎2006 Dec 22 3:47 AM
Hi Gopi,
to send to distribution list..do i need to maintain anywhere
i need to send the file as .csv file.
‎2006 Dec 22 4:09 AM
Check the complete code
perform SEND_AS_EMAIL tables IT_MESSAGE
IT_ATTACH
using WORK-L_EMAIL
IT_SUBJECT-LINE
' '
'filename'
' '
' '
' '
changing L_GD_ERROR
L_GD_RECIEVER.
*&----
*
*& Form send_as_email
*&----
*
Send e-mail.
*----
*
form SEND_AS_EMAIL tables PIT_MESSAGE
PIT_ATTACH
using P_EMAIL
P_MTITLE
P_FORMAT
P_FILENAME
P_ATTDESCRIPTION
P_SENDER_ADDRESS
P_SENDER_ADDRES_TYPE
changing P_ERROR
P_RECIEVER.
data: LD_ERROR type SY-SUBRC,
LD_RECIEVER type SY-SUBRC,
LD_MTITLE like SODOCCHGI1-OBJ_DESCR,
LD_EMAIL like SOMLRECI1-RECEIVER,
LD_FORMAT type SO_OBJ_TP ,
LD_ATTDESCRIPTION type SO_OBJ_NAM ,
LD_ATTFILENAME type SO_OBJ_DES ,
LD_SENDER_ADDRESS like SOEXTRECI1-RECEIVER,
LD_SENDER_ADDRESS_TYPE like SOEXTRECI1-ADR_TYP,
LD_RECEIVER like SY-SUBRC.
LD_EMAIL = WORK-L_EMAIL.
LD_MTITLE = P_MTITLE.
LD_FORMAT = P_FORMAT.
LD_ATTDESCRIPTION = P_ATTDESCRIPTION.
LD_ATTFILENAME = P_FILENAME.
LD_SENDER_ADDRESS = P_SENDER_ADDRESS.
LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.
*Fill_the_document_data
L_DOC_DATA-DOC_SIZE = 1.
*Populate_the_subject/generic_message_attributes
L_DOC_DATA-OBJ_LANGU = SY-LANGU.
L_DOC_DATA-OBJ_NAME = 'SAPRPT'.
L_DOC_DATA-OBJ_DESCR = LD_MTITLE .
L_DOC_DATA-SENSITIVTY = C_F.
*Fill_the_document_data_and_get_size_of_attachment
clear L_DOC_DATA.
read table IT_ATTACH index L_CNT.
L_DOC_DATA-DOC_SIZE =
( L_CNT - 1 ) * 255 + strlen( IT_ATTACH ).
L_DOC_DATA-OBJ_LANGU = SY-LANGU.
L_DOC_DATA-OBJ_NAME = 'SAPRPT'.
L_DOC_DATA-OBJ_DESCR = LD_MTITLE.
L_DOC_DATA-SENSITIVTY = C_F.
clear IT_ATTACHMENT.
refresh IT_ATTACHMENT.
IT_ATTACHMENT[] = PIT_ATTACH[].
*Describe_the_body_of_the_message
clear IT_PACKING_LIST.
refresh IT_PACKING_LIST.
IT_PACKING_LIST-TRANSF_BIN = SPACE.
IT_PACKING_LIST-HEAD_START = 1.
IT_PACKING_LIST-HEAD_NUM = 0.
IT_PACKING_LIST-BODY_START = 1.
describe table IT_MESSAGE lines IT_PACKING_LIST-BODY_NUM.
IT_PACKING_LIST-DOC_TYPE = 'RAW'.
append IT_PACKING_LIST.
IT_PDF[] = IT_PDF_OUTPUT[].
clear: WORK-L_TEMP, WORK-L_OFFSET, IT_TEMP.
describe table IT_PDF lines WORK-L_LINES .
describe field IS_PDF length WORK-L_LINESLEN in character mode.
describe field IS_TMP length WORK-L_MIMELEN in character mode.
loop at IT_PDF into IS_PDF.
WORK-L_TABIX = SY-TABIX.
move IS_PDF to WORK-L_TEMP+WORK-L_OFFSET.
if WORK-L_TABIX = WORK-L_LINES.
WORK-L_LINESLEN = strlen( IS_PDF ).
endif.
WORK-L_OFFSET = WORK-L_OFFSET + WORK-L_LINESLEN.
if WORK-L_OFFSET ge WORK-L_MIMELEN.
clear IS_TMP.
IS_TMP = WORK-L_TEMP(WORK-L_MIMELEN).
append IS_TMP to IT_TEMP.
shift WORK-L_TEMP by WORK-L_MIMELEN places.
WORK-L_OFFSET = WORK-L_OFFSET - WORK-L_MIMELEN.
endif.
if WORK-L_TABIX = WORK-L_LINES.
if WORK-L_OFFSET gt 0.
IS_TMP = WORK-L_TEMP(WORK-L_OFFSET).
append IS_TMP to IT_TEMP.
endif.
endif.
endloop.
describe table IT_TEMP lines TAB_LINES.
read table IT_TEMP index TAB_LINES.
L_DOC_DATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + strlen( IT_TEMP ).
Create attachment notification
IT_PACKING_LIST-TRANSF_BIN = 'X'.
IT_PACKING_LIST-HEAD_START = 1.
IT_PACKING_LIST-HEAD_NUM = 1.
IT_PACKING_LIST-BODY_START = 1.
IT_PACKING_LIST-BODY_NUM = TAB_LINES.
describe table IT_TEMP lines TAB_LINES.
IT_OBJECT_HEADER = 'ATTACHMENT.PDF'.
append IT_OBJECT_HEADER.
IT_PACKING_LIST-DOC_TYPE = 'PDF'.
IT_PACKING_LIST-OBJ_DESCR = 'Document'(038).
IT_PACKING_LIST-OBJ_NAME = 'Document.pdf'(039).
IT_PACKING_LIST-DOC_SIZE = TAB_LINES * 255.
append IT_PACKING_LIST.
clear IT_RECEIVERS.
refresh IT_RECEIVERS.
IT_RECEIVERS-RECEIVER = LD_EMAIL.
IT_RECEIVERS-REC_TYPE = 'U'.
IT_RECEIVERS-COM_TYPE = 'INT'.
IT_RECEIVERS-NOTIF_DEL = C_X.
IT_RECEIVERS-NOTIF_NDEL = C_X.
append IT_RECEIVERS.
call function 'SO_DOCUMENT_SEND_API1'
exporting
DOCUMENT_DATA = L_DOC_DATA
PUT_IN_OUTBOX = C_X
SENDER_ADDRESS = LD_SENDER_ADDRESS
SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE
COMMIT_WORK = C_X
importing
SENT_TO_ALL = L_SENT_ALL
tables
PACKING_LIST = IT_PACKING_LIST
CONTENTS_BIN = IT_TEMP
CONTENTS_TXT = IT_MESSAGE
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 S899(M3) with 'Mail has been sent'(040).
else.
message E899(M3) with 'Mail cant be sent'(041).
endif.
refresh : IT_PACKING_LIST,IT_TEMP,IT_MESSAGE,IT_RECEIVERS.
clear : L_SENT_ALL,
LD_SENDER_ADDRESS,
LD_SENDER_ADDRESS_TYPE,
L_DOC_DATA.
*Populate_zerror_return_code
LD_ERROR = SY-SUBRC.
*Populate_zreceiver_return_code
loop at IT_RECEIVERS.
LD_RECEIVER = IT_RECEIVERS-RETRN_CODE.
endloop.
endform. " send_as_email
Regards
- Gopi