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

send mail (Urgent)

Former Member
0 Likes
2,288

HI guys,

Please look at the coding below..

l_wa_recieve-receiver = '[email protected]'. " this is the distribution list id "with number of mail ids inside it

l_wa_recieve-rec_type = 'C'. "shared dis list

APPEND l_wa_recieve TO l_it_recieve.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

document_data = "ERROR'

document_type = 'DLI'

put_in_outbox = c_x

commit_work = c_x

TABLES

object_content = l_it_content "this table contains the body of email

receivers = l_it_recieve " this is above

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.

Can you just tell me whether it works fine.. And if it is correct how much time will it take to get email in my respective email address..

I have run this FM by just giving my mail id (not distribution list just giving doctype = 'RAW instead of DLI)

The FM ran sucessfully without any errors , But I didnot receive any mail in my mail Inbox..

Can you please help me how to sort it out getting mail in less time..

Points will be rewarded

regards,

nazeer

1 ACCEPTED SOLUTION
Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
1,469

Hi

Hope it can works properly.

This is the sample code I was used previously.

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1' " IN UPDATE TASK "/ .

exporting

document_data = l_doc_chng

put_in_outbox = k_x

tables

packing_list = l_objpack

object_header = l_objhead

contents_bin = l_objbin

contents_txt = l_objtxt

receivers = l_reclist

exceptions

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

others = 99.

if sy-subrc <> 0.

write: / 'unsuccessful', sy-subrc.

else.

concatenate l_mail ',' l_mail1 ',' l_l_mail into l_recipents.

syst-msgid = '8I'.

syst-msgno = '000'.

syst-msgty = 'S'.

syst-msgv1 = text-008.

skip.

syst-msgv2 = text-009.

syst-msgv3 = l_recipents.

clear: syst-msgv4. "syst-msgv2, syst-msgv3,

perform protocol_update.

write: / 'successful'.

endif.

Regards,

Sreeram

Check in sost tcode whether mail is sending successfully or not?

Message was edited by:

sree ram

HI guys,

Please look at the coding below..

l_wa_recieve-receiver = '[email protected]'. " this is the distribution list id "with number of mail ids inside it

l_wa_recieve-rec_type = 'C'. "shared dis list

APPEND l_wa_recieve TO l_it_recieve.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

document_data = "ERROR'

document_type = 'DLI'

put_in_outbox = c_x

commit_work = c_x

TABLES

object_content = l_it_content "this table contains the body of email

receivers = l_it_recieve " this is above

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.

Can you just tell me whether it works fine.. And if it is correct how much time will it take to get email in my respective email address..

I have run this FM by just giving my mail id (not distribution list just giving doctype = 'RAW instead of DLI)

The FM ran sucessfully without any errors , But I didnot receive any mail in my mail Inbox..

Can you please help me how to sort it out getting mail in less time..

Points will be rewarded

regards,

nazeer

8 REPLIES 8
Read only

Former Member
0 Likes
1,469

start the process--->

SCOT-->utilities>start send process if ur mails in waiting list.

<b>have u done SCOT settings fully ? u have to link ur OUTlook with SAP ? for more infomation ask ur Basis person -->how to link Outlook with SAP ?</b>

Regards

Prabhu

Read only

0 Likes
1,469

HI prabhu,

in SCOT --> internet

--> SMTP Error 5..

no number appear in completer or in transit waiting..

Can you please what should be the reason ..

regardsa,

nazeer

Read only

0 Likes
1,469

Hi

Use Tcode SOST.

Regards,

Sreeram

Read only

0 Likes
1,469

HI Sreeram,

I checked the SOST..

Errors in sending mail..

Message cannot be transferred to node SMTP due to connection error (final)..

Can you please tell me what should be done to rectify this

regards,

nazeer

Read only

Former Member
0 Likes
1,469

Hello NAzeer,

After calling the FM u need to submit this report for send process:


*   Instructs mail send program for SAPCONNECT to send email(rsconn01)
  PERFORM INITIATE_MAIL_EXECUTE_PROGRAM.
*&---------------------------------------------------------------------*
*&      Form  INITIATE_MAIL_EXECUTE_PROGRAM
*&---------------------------------------------------------------------*
*       Instructs mail send program for SAPCONNECT to send email.
*----------------------------------------------------------------------*
FORM INITIATE_MAIL_EXECUTE_PROGRAM.
  WAIT UP TO 2 SECONDS.
  SUBMIT RSCONN01 WITH MODE = 'INT'
                WITH OUTPUT = 'X'
                AND RETURN.
ENDFORM.                    " INITIATE_MAIL_EXECUTE_PROGRAM

If useful reward.

Vasanth

Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
1,470

Hi

Hope it can works properly.

This is the sample code I was used previously.

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1' " IN UPDATE TASK "/ .

exporting

document_data = l_doc_chng

put_in_outbox = k_x

tables

packing_list = l_objpack

object_header = l_objhead

contents_bin = l_objbin

contents_txt = l_objtxt

receivers = l_reclist

exceptions

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

others = 99.

if sy-subrc <> 0.

write: / 'unsuccessful', sy-subrc.

else.

concatenate l_mail ',' l_mail1 ',' l_l_mail into l_recipents.

syst-msgid = '8I'.

syst-msgno = '000'.

syst-msgty = 'S'.

syst-msgv1 = text-008.

skip.

syst-msgv2 = text-009.

syst-msgv3 = l_recipents.

clear: syst-msgv4. "syst-msgv2, syst-msgv3,

perform protocol_update.

write: / 'successful'.

endif.

Regards,

Sreeram

Check in sost tcode whether mail is sending successfully or not?

Message was edited by:

sree ram

Read only

Former Member
0 Likes
1,469

Hi Nazeer,

This will work fine.but If u are not getting mail just go through this documentation.This will help u find out the error.

Functionality

This function module enables you to send a new document, which has not yet been created, internally and externally. During the send process the document is created, along with the attributes and content that are to be transferred.

Import parameters

DOCUMENT_TYPE

Default = 'RAW'.

Document class. All classes are possible except for folders ('FOL') and distributions lists ('DLI').

PUT_IN_OUTBOX

Default = ' '.

If this flag is activated ('X'), the newly created document is also placed in the outbox of the active user when it is sent.

DOCUMENT_DATA

This structure must contain the attributes of the document to be sent.

OBJ_NAME

Name of document.

OBJ_DESCR

Title (short description) of document.

OBJ_LANGU

Language of document.

OBJ_SORT

Sort field of document. You can search for this term using attribute search.

OBJ_EXPDAT

Expiry date of document. The document itself cannot expire, but each time the document is entered in a folder, this date is used as the default for the expiry date of the entry (field EXPIRY_DAT).

SENSITIVTY

Document sensitivity.

A private document can have the following levels of sensitivity:

'O' : Standard, normal sensitivity

'F' : Functional, can be forwarded functionally

'P' : Confidential, not visible to substitutes

For documents in shared folders, only sensitivity level 'O' is permitted.

OBJ_PRIO

Recipient priority. The document itself does not have a priority level, but each time the document is entered in a folder, this value is used as the default for recipient priority for the entry (field PRIORITY).

NO_CHANGE

If this flag is activated ('X'), documents in shared folders can only be changed by the author. The author can change documents in private folders after they have been sent.

PRIORITY

Recipient priority for the folder entry. This value gives the priority, which was assigned to the document by the owner, after receipt.

EXPIRY_DAT

Expiry date of the folder entry. When the expiry date has been reached or passed, the entry is placed in private trash and can be retrieved from there if needed, up until the next time the trash is emptied. A new folder entry is initially given the expiry date of the document from field OBJ_EXPDT.

PROC_TYPE

If this field does not contain the default value (default is ' '), the document can be processed.

The following entries are permitted:

'D' : Dialog module

'F' : Function module

'R' : Report

'S' : Report with transfer of values to global memory

'T' : Transaction

'U' : Transaction with transfer of values to global memory

PROC_NAME

Processing element. You must enter the name of the dialog module, function module, report or transaction in accordance with the entry in the field PROC_TYPE.

PROC_SYST

Name of sytem in which the document is to be processed. If no system is specified or '*' is entered, processing is possible in all systems.

PROC_CLINT

Client in which the document is to be processed. If no client is specified or '*' is entered, processing is possible in all clients.

SKIP_SCREN

If this flag is activated ('X'), the first screen is skipped during processing.

TO_DO_OUT

If this flag is activated ('X'), the document cannot be processed from the SAPoffice interface. You must use the API function module SO_DOCUMENT_SET_STATUS_API1.

FREE_DEL

If this flag is activated ('X'), you can delete the document from external folders using the API.

DOC_SIZE

Size of the document in bytes. For PC documents, the size of the relevant file should be entered, for RAW and SCR documents the size is the "length of the last line" + "number of other lines multiplied by 255".

Export parameters

NEW_OBJECT_ID

Object ID of the document created during the send process.

SENT_TO_ALL

If this flag is activated ('X'), the document was sent to all specified recipients or, in the case of external forwarding, the corresponding send requests were delivered to the subsystem. If sending or delivery failed in one or more cases, the flag is not activated.

Table parameters

OBJECT_HEADER

This table must contain the document class-relevant data. For example, SAPscript documents store information here about forms and styles, Excel list viewer documents store, amongst other things, the number of rows and columns and PC documents store their original file names.

LINE

Requires class-relevant document information line by line.

OBJECT_CONTENT

This table must contain the actual content of the document.

LINE

Requires the content of the document line by line.

OBJECT_PARA

This table is used only by documents that are to be processed. It must contain the SET/GET parameter that is transferred to the processing element.

NAME

Name of the SET/GET parameter. Only the first three characters are used.

OPTION

This field is not used.

LOW

Requires the value of the parameter in NAME.

HIGH

This field is not used.

OBJECT_PARB

This table is only used by documents to which a particular processing type is assigned. The meaning of the table depends on the processing type. If the processing element is a report, or transaction with transfer of values to the global memory, the table content is interpreted as the quantity of parameters with the relevant values and exported to the memory ID taken from the first row. If the processing element is a function module or a dialog module, the table is transferred to this as table parameter MSGDIAL.

NAME

If the processing element is a report or a transaction with transfer of values to the global memory, the field of the first row of the table must contain the name of the memory ID used for the export. The fields of the other rows accommodate the parameter names. If the processing element is a function module or a dialog module, the fields must contain values corresponding to the use of the module.

VALUE

If the processing element is a report or a transaction with transfer of values to the global memory, the field for the first row of the table must remain empty. The fields for the other rows accommodate the values belonging to the parameters in NAME. If the processing element is a function or dialog module, the fields must contain values corresponding to the use of the modules.

RECEIVERS

This table must contain the document recipients.

RECEIVER

Name of recipient.

The following entry categories are possible:

SAP user name of the recipient

SAPoffice name of the recipient

Shared distribution list

Fax number in the form of structure SADRFD

Internet address in the form of structure SADRUD

Remote SAP name in the form of structure SADR7D

X.400 address in the form of structure SADR8D

ADR_TYPE

Type of RECEIVER entry.

The following values are permitted:

'B' : SAP user name

' ' : SAPoffice name

'C' : Shared distribution list

'F' : Fax number

'U' : Internet address

'R ' : Remote SAP name

'X' : X.400 address

REC_ID

If the recipient is a SAPoffice user, the user ID, instead of the recipient name in RECEIVER, can be entered in this field.

REPLY_DOC

If there is a value in this field, the document is a reply to the folder entry identified by the specified ID. A correspondence history is automatically created/continued.

REC_DATE

The date on which the document is to reach the recipient. This date cannot be guaranteed for external recipients as it depends on connected products.

PROXY_ID

If automatic forwarding is active in the recipient's system, this field contains the SAP user ID or the address ID of the external address to which the document was ultimately sent.

RETRN_CODE

When the recipient has received the document, the function module enters the value '0' in this field. If the document is not successfully received, a value unequal to '0' is entered in the field.

EXPRESS

If this flag is activated ('X'), the document is sent with the attribute 'express'. If the recipient is a SAPoffice user who is logged on, he or she receive a message immediately, saying that he or she has received an express mail.

COPY

If this flag is activated ('X'), the document is sent with the attribute 'copy'.

BLIND_COPY

If this flag is activated ('X'), the document is sent with the attribute 'secret copy'. If the recipient is a SAPoffice user, he or she can neither print nor forward the document.

NO_FORWARD

If this flag is activated ('X') and the recipient is a SAPoffice user, he or she cannot forward the document.

NO_PRINT

If this flag is activated ('X') and the recipient is a SAPoffice user, he or she cannot print the document.

TO_ANSWER

If this flag is activated ('X') and the recipient is a SAPoffice user, the user must reply to the document before he or she can delete it from his or her inbox.

TO_DO_EXPL

If this flag is activated ('X') and the recipient is a SAPoffice user, the user must process the document before he or she can delete it from his or her inbox.

TO_DO_GRP

If this field contains a value between '1' and '9', a SAPoffice user in the recipient group indicated by this number must process the document before the recipients can delete it from their inboxes. If the value '0' is entered, the document does not need to be processed.

COM_TYPE

Communication method used to send the document. This field is only relevant if the recipient is an address number, that is, if the document is sent externally via address management. If the field is empty, the standard communication type specified in address management is used.

The following values are permitted:

'INT' : Send via Internet

'FAX' : Send as a fax

'X40' : Send via X.400

'RML' : Send in another SAP system

LFDNR

Current number from address management. This field is only relevant if the recipient is an address number, that is, if the document is sent via address management. If the field is empty, the default current number in address management is used.

FAX

This field is not used.

COUNTRY

This field is not used.

SPOOL_ID

This field is not used.

NOTIF_DEL

If this flag is activated ('X'), the sender receives confirmation when the recipient receives the document. He or she also receives a message if the document could not be delivered. This flag should only be activated for external sending, since internal sending is synchronous. Confirmation is only supported by a small number of mail systems, however. For example: X.400 and SAP SAP.

NOTIF_READ

If this flag is activated ('X'), the sender is notified as soon as the recipient has read the document. This flag should only be activated for external sending, since internal sending is synchronous. Read notification is only supported by a small number of mail systems, however. For example: X.400 and SAP SAP.

NOTIF_NDEL

If this flag is activated ('X'), the recipient receives a message if the document could not be delivered to the recipient. This flag should only be activated for external sending, since internal sending is synchronous. The message is only supported by a small number of mail systems, however. For example: X.400 and SAP SAP.

SAP_BODY

If this flag is activated ('X'), SAP specific data is transferred to the document in an external body part when sending via X.400. This flag should only be activated if the target system is an SAP System.

Exceptions

TOO_MANY_RECEIVERS

Too many recipients were specified. The active user does not have authorization to send to this number of recipients.

DOCUMENT_NOT_SENT

The document could not be sent. It was not delivered to any of the specified recipients.

DOCUMENT_TYPE_NOT_EXIST

The document class specified does not exist or is not permitted.

OPERATION_NO_AUTHORIZATION

The document was not allowed to be sent because one of the required authorizations did not exist.

PARAMETER_ERROR

The combination of parameter values transferred to the function module was not a permitted combination.

X_ERROR

Am internal error or a database inconsistency has occurred.

ENQUEUE_ERROR

A lock required for the send process could not be set. It is probable that another user is processing.

Example

Sending a confidential RAW document to an internal user and an Internet address. The new document is also placed in the sender's outbox.

DATA: OBJCONT LIKE SOLISTI1 OCCURS 5 WITH HEADER LINE.

DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.

DATA: DOC_CHNG LIKE SODOCCHGI1.

DATA: ENTRIES LIKE SY-TABIX.

DATA: NAME(15).

  • Fill the document

DOC_CHNG-OBJ_NAME = 'URGENT'.

DOC_CHNG-OBJ_DESCR = 'Read at once !'.

DOC_CHNG-SENSITIVTY = 'P'.

OBJCONT = 'Hey guys, time for lunch !!!'.

APPEND OBJCONT.

OBJCONT = 'Lets get going !'.

APPEND OBJCONT.

DESCRIBE TABLE OBJCONT LINES ENTRIES.

READ TABLE OBJCONT INDEX ENTRIES.

DOC_CHNG-DOC_SIZE = ( ENTRIES - 1 ) * 255 + STRLEN( OBJCONT ).

  • Fill the receiver list

CLEAR RECLIST.

RECLIST-RECEIVER = SY-UNAME. " replace with <login name>

RECLIST-REC_TYPE = 'B'.

RECLIST-EXPRESS = 'X'.

APPEND RECLIST.

CLEAR RECLIST.

RECLIST-RECEIVER = '[email protected]'.

RECLIST-REC_TYPE = 'U'.

APPEND RECLIST.

  • Send the document

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_TYPE = 'RAW'

DOCUMENT_DATA = DOC_CHNG

PUT_IN_OUTBOX = 'X'

TABLES

OBJECT_CONTENT = OBJCONT

RECEIVERS = RECLIST

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

OPERATION_NO_AUTHORIZATION = 4

OTHERS = 99.

CASE SY-SUBRC.

WHEN 0.

LOOP AT RECLIST.

IF RECLIST-RECEIVER = SPACE.

NAME = RECLIST-REC_ID.

ELSE.

NAME = RECLIST-RECEIVER.

ENDIF.

IF RECLIST-RETRN_CODE = 0.

WRITE: / NAME, ': succesfully sent'.

ELSE.

WRITE: / NAME, ': error occured'.

ENDIF.

ENDLOOP.

WHEN 1.

WRITE: / 'Too many receivers specified !'.

WHEN 2.

WRITE: / 'No receiver got the document !'.

WHEN 4.

WRITE: / 'Missing send authority !'.

WHEN OTHERS.

WRITE: / 'Unexpected error occurred !'.

ENDCASE.

Notes

To send an existing document, you must use the function module SO_OLD_DOCUMENT_SEND_API1.

If the active user is still to be able to process the document after it has been sent, it must be moved to the outbox when sent using the flag PUT_IN_OUTBOX. You can use the function module SO_FOLDER_READ_API1 to read the contents of the outbox and the object ID to find the document sent.

It is not possible to use a user address name as the recipient since this may not be unique. To get around this problem, you can use the function module SO_NAME_CONVERT_API1. This provides a hit list in response to a specified name, for which a dialog is constructed with a choice of required values.

Parameters

DOCUMENT_DATA

DOCUMENT_TYPE

PUT_IN_OUTBOX

COMMIT_WORK

SENT_TO_ALL

NEW_OBJECT_ID

OBJECT_HEADER

OBJECT_CONTENT

CONTENTS_HEX

OBJECT_PARA

OBJECT_PARB

RECEIVERS

Exceptions

TOO_MANY_RECEIVERS

DOCUMENT_NOT_SENT

DOCUMENT_TYPE_NOT_EXIST

OPERATION_NO_AUTHORIZATION

PARAMETER_ERROR

X_ERROR

ENQUEUE_ERROR

U can use other FM also

<b>SO_DOCUMENT_SEND_API1

SO_NEW_DOCUMENT_ATT_SEND_API1

SO_OLD_DOCUMENT_SEND_API1</b>

Reward points if helpful.

Regards,

Hemant

Read only

Former Member
0 Likes
1,469

My question is answered upto some mark..

May be I need to check with Basis people

Thank you guys.