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

email

Former Member
0 Likes
551

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

1 ACCEPTED SOLUTION
Read only

gopi_narendra
Active Contributor
0 Likes
518

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

4 REPLIES 4
Read only

Former Member
0 Likes
518

HI

Please refer to these links...

Hope this gets your job done...

Kind Regards

Eswar

Read only

gopi_narendra
Active Contributor
0 Likes
519

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

Read only

0 Likes
518

Hi Gopi,

to send to distribution list..do i need to maintain anywhere

i need to send the file as .csv file.

Read only

0 Likes
518

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