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: 

Problem while sending the mail from sap

Former Member
0 Kudos

Hi experts,

I am facing some problem while sending mail from sap to external mail.

this is th code i am using but it is not working. plz check and tell me.

REPORT ZMAIL_DEMO.

data: maildata type sodocchgi1.

data: mailtxt type table of solisti1 with header line.

data: mailrec type table of somlrec90 with header line.

start-of-selection.

break-point.

clear: maildata, mailtxt, mailrec.

refresh: mailtxt, mailrec.

maildata-obj_name = 'TEST'.

maildata-obj_descr = 'Test'.

maildata-obj_langu = sy-langu.

mailtxt-line = 'This is a test'.

append mailtxt.

mailrec-receiver = 'SOME MAIL ID'.

mailrec-rec_type = 'U'.

append mailrec.

call function 'SO_NEW_DOCUMENT_SEND_API1'

exporting

document_data = maildata

document_type = 'RAW'

put_in_outbox = 'X'

tables

object_header = mailtxt

object_content = mailtxt

receivers = mailrec

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. "( did not receive any mail) *

write : 'mail sent'.

endif.

6 REPLIES 6

Former Member
0 Kudos

Assuming all the data that is being passed correct, I would check SCOT transaction to see any pending requests. Push it from there if you have any pending request. (this is for external mail)

Former Member
0 Kudos

After executing ur program run RSCONN01 or u can schedule RSCONN01 to run in background....

Regards,

Joy.

former_member188685
Active Contributor
0 Kudos
if sy-subrc = 0. "( did not receive any mail) *
write : 'mail sent'.
endif

what is the sy-subrc value. Is SCOT settings for sending external mails are properly done.

if sy-subrc eq 0 then you check any mail are queue . if so then manually send them .

do this also.

if  sy-subrc eq 0.

commit work.
call function 'SO_DEQUEUE_UPDATE_LOCKS'.
endif.

Former Member
0 Kudos

Hi,

Please check with the following code.

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: 'any_email'_ TO RECEIVER-RECEIVER, " SY-UNAME

'X' TO RECEIVER-EXPRESS,

'U' 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.

0 Kudos

Hi satya,

I used your code it is executing fine but it is not sending mail to my gmail ID.

0 Kudos

Confgure the SCOT first then only it will work. which system you are working on is it Dummy system or Real Dev system.

check this...