‎2007 Feb 20 6:23 AM
can anyone send me a program related to e-mail.
with regards
p.navin
‎2007 Feb 20 6:25 AM
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
‎2007 Feb 20 6:27 AM
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
‎2007 Feb 20 6:28 AM
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.
‎2007 Feb 20 6:29 AM
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