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: 

e mail program

Former Member
0 Kudos

can anyone send me a program related to e-mail.

with regards

p.navin

4 REPLIES 4

sreeramkumar_madisetty
Active Contributor
0 Kudos

Hi

This is the sample code previously I achieved the same requirement.

FORM send_mail_2 USING msgid msgno msgv1.

  • mailuser oder Gruppe like sy-uname default 'Ruckerk'.

DATA: express_hold_time LIKE sovaltime.

DATA: text LIKE sotxtinfo.

DATA: receiver LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

  • MESSAGE ZF100 (FTP an UDB fehlgeschlagen)

text-msgid = msgid.

text-msgno = msgno.

text-msgv1 = msgv1.

text-msgv2 = ' '.

text-msgv3 = ' '.

text-msgv4 = ' '.

  • express_hold_time

express_hold_time-days = 01.

express_hold_time-h_min_sec = 240000.

  • receiver

receiver-receiver = mreceivr.

  • Gruppe von Empfängern

receiver-rec_type = 'C'.

  • und Expressmeldung ausgeben

receiver-express = 'X'.

APPEND receiver.

CALL FUNCTION 'MESSAGE_SEND_AS_MAIL'

EXPORTING

msgid = text-msgid

msgno = text-msgno

msgv1 = text-msgv1

msgv2 = text-msgv2

msgv3 = text-msgv3

TABLES

receivers = receiver.

IF sy-subrc <> 0.

WRITE:/ 'hat nicht geklappt', 'SY-SUBRC =', sy-subrc.

ENDIF.

PERFORM print_error_report.

  • Fehlermeldung zum Abbrechen des Report's ausgeben.

MESSAGE e398 WITH 'Jobabbruch' msgv1.

ENDFORM. " SEND_MAIL_2

Regards,

kumar

Former Member
0 Kudos

Dear Mr. Navin,

check the below program

SD1K993582

Data : C_TLDOTCOM(40) VALUE 'TATEANDLYLE.COM',

karen.wiehe@tateandlyle.com

At Selection Screen

Validation for Email Entered wether is of @TATEANDLYLE.COM

  • * Check all email addresses from selection screen.

CLEAR flag_mail.

LOOP AT s_email.

CLEAR : first,

second.

SPLIT s_email-low AT '@' INTO first second.

  • If the T&Lemail is not there in select option then set the flag

IF second <> c_tnl.

flag_mail = 'X'.

EXIT.

ENDIF.

ENDLOOP.

  • If the flag is set, then display the warning message.

IF NOT flag_mail IS INITIAL.

MESSAGE W000 WITH 'The email address is not' 'in T&L'.

ENDIF.

-


DATA: doc_data LIKE sodocchgi1,

receivers LIKE somlreci1 OCCURS 10 WITH HEADER LINE,

objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,

objtxt LIKE solisti1 OCCURS 1 WITH HEADER LINE,

cnt TYPE i,

tab_lines LIKE sy-tabix.

*Document recipients

receivers-receiver = p_email. " Name of the recipient

receivers-rec_type = 'U'. " Type of Receiver

APPEND receivers.

CLEAR receivers.

  • If there is no entry in the input then don't call the FM

IF receivers[] IS NOT INITIAL.

  • Copy the display to table TEXT

DO.

cnt = sy-index.

READ LINE sy-index.

IF sy-subrc <> 0.

EXIT.

ENDIF.

text-line = sy-lisel.

APPEND text.

IF cnt > 5000.

REFRESH text.

CLEAR text.

text-line = 'Report too large and must be viewed in SAP.'.

APPEND text.

EXIT.

ENDIF.

ENDDO.

  • Attachment Title ( Short Description)

doc_data-obj_descr = 'Contract Balance Sales Management Report'.

DESCRIBE TABLE text LINES tab_lines.

  • Attachment size in Bytes

doc_data-doc_size = tab_lines * 255.

  • object for showing the report's text

objtxt = 'Contract Balance Sales Management Report'.

APPEND objtxt.

CLEAR objtxt.

  • Creation of the entry for the compressed document

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.

CLEAR objpack.

  • FM to mail the email id

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = doc_data

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = objpack

OBJECT_HEADER = objtxt

CONTENTS_TXT = text

RECEIVERS = receivers.

COMMIT WORK.

ENDIF.

reward points if help ful

regards

praveen

former_member189631
Active Contributor
0 Kudos

Hi Navin,

CHeck this code

SAP Send mail via ABAP functions SO_NEW_DOCUMENT_SEND_API1

This abap mail sending program demonstrate how you can send a mail to the user SAP Office mailbox.

REPORT ZSEND .

TABLES: KNA1.

  • data for send function

DATA DOC_DATA LIKE SODOCCHGI1.

DATA OBJECT_ID LIKE SOODK.

DATA OBJCONT LIKE SOLI OCCURS 10 WITH HEADER LINE.

DATA RECEIVER LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE.

SELECT * FROM KNA1 WHERE ANRED LIKE 'C%'.

WRITE:/ KNA1-KUNNR, KNA1-ANRED.

  • send data internal table

CONCATENATE KNA1-KUNNR KNA1-ANRED

INTO OBJCONT-LINE SEPARATED BY SPACE.

APPEND OBJCONT.

ENDSELECT.

  • insert receiver (sap name)

REFRESH RECEIVER.

CLEAR RECEIVER.

MOVE: SY-UNAME TO RECEIVER-RECEIVER,

'X' TO RECEIVER-EXPRESS,

'B' TO RECEIVER-REC_TYPE.

APPEND RECEIVER.

  • insert mail description

WRITE 'Sending a mail through abap'

TO DOC_DATA-OBJ_DESCR.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOC_DATA

IMPORTING

NEW_OBJECT_ID = OBJECT_ID

TABLES

OBJECT_CONTENT = OBJCONT

RECEIVERS = RECEIVER

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.

http://www.sap-basis-abap.com//abap011.htm

http://sapabap.iespana.es/sapabap/sap/reports/sendmail.htm

http://www.saptech.8m.com/sap/abapf.htm

Hope this helps.

Regards,

Ramganesan K.

Former Member
0 Kudos

Navin,

1. Normal email

REPORT zmbundal_email_out .

DATA BEGIN OF object_hd_change. "SAPoffice: object definition,

INCLUDE STRUCTURE sood1. "change attributes

DATA END OF object_hd_change.

DATA BEGIN OF object_content OCCURS 5. "SAPoffice: Single List with

INCLUDE STRUCTURE solisti1. "Column Length 255

DATA END OF object_content.

DATA BEGIN OF rec_table OCCURS 1. "SAPoffice: recipient with

INCLUDE STRUCTURE soos1. "attributes

DATA END OF rec_table.

  • Build email recipient table...........................................

CLEAR rec_table.

rec_table-sel = 'X'.

rec_table-recesc = 'B'.

rec_table-recesc = 'U'.

rec_table-recnam = 'U-'.

rec_table-recextnam = 'destination@yahoo.com'.

rec_table-adr_name = 'destination@yahoo.com'.

rec_table-sndex = 'X'.

rec_table-sndpri = '1'.

rec_table-mailstatus = 'E'.

rec_table-SNDSPO = 442355.

rec_table-SNDCP = 'X'.

COLLECT rec_table.

*.Email.content.........................................................

object_content = 'dannyboy baboy'. APPEND object_content.

object_content = 'dannyboy pogi'. APPEND object_content.

object_content = 'dannyboy fagg*t'. APPEND object_content.

*...Subject.Line........................................................

object_hd_change-objnam = 'Test email'.

object_hd_change-objdes = ' Email for Baboy'.

  • Send Email............................................................

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

object_hd_change = object_hd_change

object_type = 'RAW'

outbox_flag = 'X'

TABLES

objcont = object_content

receivers = rec_table

EXCEPTIONS

active_user_not_exist = 1

communication_failure = 2

component_not_available = 3

folder_not_exist = 4

folder_no_authorization = 5

forwarder_not_exist = 6

note_not_exist = 7

object_not_exist = 8

object_not_sent = 9

object_no_authorization = 10

object_type_not_exist = 11

operation_no_authorization = 12

owner_not_exist = 13

parameter_error = 14

substitute_not_active = 15

substitute_not_defined = 16

system_failure = 17

too_much_receivers = 18

user_not_exist = 19

originator_not_exist = 20

x_error = 21

OTHERS = 22.

*...SAPconnect..........................................................

SUBMIT rsconn01 "SAPconnect Start Send Process

WITH mode EQ '*'

WITH output EQ ''

TO SAP-SPOOL

DESTINATION 'LOCAL'

IMMEDIATELY ' '

KEEP IN SPOOL 'X'

WITHOUT SPOOL DYNPRO

AND RETURN.

_________________

2)sending the report as an excel file by attaching it to mail

I need a create a excel file (or tab delimited file) and send it as attachment by mail to the user (in background processing). I use SO_NEW_DOCUMENT_ATT_SEND_API1. I have a problem, that 1 Excel line is splited into 2 lines in mail, because there is more then 255 chars in Excel line.

Can anybody help me?

report y_cr17_mail .

data method1 like sy-ucomm.

data g_user like soudnamei1.

data g_user_data like soudatai1.

data g_owner like soud-usrnam.

data g_receipients like soos1 occurs 0 with header line.

data g_document like sood4 .

data g_header like sood2.

data g_folmam like sofm2.

data g_objcnt like soli occurs 0 with header line.

data g_objhead like soli occurs 0 with header line.

data g_objpara like selc occurs 0 with header line.

data g_objparb like soop1 occurs 0 with header line.

data g_attachments like sood5 occurs 0 with header line.

data g_references like soxrl occurs 0 with header line.

data g_authority like sofa-usracc.

data g_ref_document like sood4.

data g_new_parent like soodk.

data: begin of g_files occurs 10 ,

text(4096) type c,

end of g_files.

data : fold_number(12) type c,

fold_yr(2) type c,

fold_type(3) type c.

parameters ws_file(4096) type c default 'c:\debugger.txt'.

  • Can me any file fromyour pc ....either xls or word or ppt etc ...

g_user-sapname = sy-uname.

call function 'SO_USER_READ_API1'

exporting

user = g_user

  • PREPARE_FOR_FOLDER_ACCESS = ' '

importing

user_data = g_user_data

  • EXCEPTIONS

  • USER_NOT_EXIST = 1

  • PARAMETER_ERROR = 2

  • X_ERROR = 3

  • OTHERS = 4

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

fold_type = g_user_data-outboxfol+0(3).

fold_yr = g_user_data-outboxfol+3(2).

fold_number = g_user_data-outboxfol+5(12).

clear g_files.

refresh : g_objcnt,

g_objhead,

g_objpara,

g_objparb,

g_receipients,

g_attachments,

g_references,

g_files.

method1 = 'SAVE'.

g_document-foltp = fold_type.

g_document-folyr = fold_yr.

g_document-folno = fold_number.

g_document-objtp = g_user_data-object_typ.

*g_document-OBJYR = '27'.

*g_document-OBJNO = '000000002365'.

*g_document-OBJNAM = 'MESSAGE'.

g_document-objdes = 'Manohar testing by program'.

g_document-folrg = 'O'.

*g_document-okcode = 'CHNG'.

g_document-objlen = '0'.

g_document-file_ext = 'TXT'.

g_header-objdes = 'Manohar testing by program'.

g_header-file_ext = 'TXT'.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

exporting

method = method1

office_user = sy-uname

ref_document = g_ref_document

new_parent = g_new_parent

importing

authority = g_authority

tables

objcont = g_objcnt

objhead = g_objhead

objpara = g_objpara

objparb = g_objparb

recipients = g_receipients

attachments = g_attachments

references = g_references

files = g_files

changing

document = g_document

header_data = g_header

  • FOLMEM_DATA =

  • RECEIVE_DATA =

.

  • File from the pc to send...

method1 = 'ATTCREATEFROMPC'.

g_files-text = ws_file.

append g_files.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

exporting

method = method1

office_user = g_owner

ref_document = g_ref_document

new_parent = g_new_parent

importing

authority = g_authority

tables

objcont = g_objcnt

objhead = g_objhead

objpara = g_objpara

objparb = g_objparb

recipients = g_receipients

attachments = g_attachments

references = g_references

files = g_files

changing

document = g_document

header_data = g_header

.

method1 = 'SEND'.

g_receipients-recnam = 'MK085'.

g_receipients-recesc = 'B'.

g_receipients-sndex = 'X'.

append g_receipients.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

exporting

method = method1

office_user = g_owner

ref_document = g_ref_document

new_parent = g_new_parent

importing

authority = g_authority

tables

objcont = g_objcnt

objhead = g_objhead

objpara = g_objpara

objparb = g_objparb

recipients = g_receipients

attachments = g_attachments

references = g_references

files = g_files

changing

document = g_document

header_data = g_header.

Pls. reward if useful