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: 

extenal mail

Former Member
0 Kudos

Hi experts,

I am sending external mail throuh FM so_object_send , the code is given below

The FM sy-subrc returning 0 but i am not getting mail. Is i am missing any thing to pass to FM

Please suggest

Thanks in advance

sai

code

DATA: i_receivers LIKE soos1 OCCURS 1 WITH HEADER LINE,

i_objpara LIKE selc OCCURS 1 WITH HEADER LINE,

i_objhead LIKE soli OCCURS 1 WITH HEADER LINE,

i_objcont LIKE soli OCCURS 1 WITH HEADER LINE.

DATA: r_object_hd_change LIKE sood1,

v_lineas TYPE i.

data : SUBJECT(10),

DIRECCION(80) type c.

  • URGENTE.

DIRECCION = 'email address.

SUBJECT = 'SUBJECT'.

CLEAR i_receivers.

i_receivers-recnam = direccion.

SEARCH direccion FOR '@'.

IF SY-SUBRC = 0.

i_receivers-recextnam = direccion.

i_receivers-recesc = 'U'.

ELSE.

i_receivers-recnam = direccion.

i_receivers-recesc = 'B'.

ENDIF.

  • i_receivers-rtunam = DIRECCION. " Nombre del Destinatario

i_receivers-recextnam = DIRECCION.

  • i_receivers-sndex = urgente. " Urgente

APPEND i_receivers.

  • Informamos el parámetro OBJECT_HD_CHANGE.

CLEAR r_object_hd_change.

r_object_hd_change-objla = sy-langu. " Idioma del documento

r_object_hd_change-objsns = 'F'. " Atributos del objeto

r_object_hd_change-objnam = SY-UNAME. " Nombre Documento

r_object_hd_change-objdes = subject. " Título

REFRESH i_objcont.

  • DESCRIBE TABLE texto LINES v_lineas.

  • IF v_lineas <> 0.

  • LOOP AT texto.

  • CLEAR i_objcont.

i_objcont-line = 'texto'.

APPEND i_objcont.

  • ENDLOOP.

  • ENDIF.

  • Envío del mensaje por SAPOffice

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

object_hd_change = r_object_hd_change

object_type = 'RAW' " Tipo Documento

outbox_flag = space

owner = SY-UNAME

delete_flag = 'X'

TABLES

objcont = i_objcont " Mensaje

objhead = i_objhead " Nº líneas objcont

objpara = i_objpara

receivers = i_receivers " Destinatario

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

x_error = 20

OTHERS = 21.

5 REPLIES 5

Former Member
0 Kudos

Hi

Normally the email will not come automatically in the development system.

Contact your BASIS person and ask them to check the SOST transaction and see, whether any emails are there pending for release.

Note - Release only the related emails in the SOST transaction

Regards

MD

0 Kudos

Hi Madhan,

Thanks for reply, I didn't understand what is related mail to sost Is there any list

when i check in transaction sost there is no pending mail.

thanks

sai

0 Kudos

Hi Sai,

Please check the below thread

Thanks

Sudharshan

Former Member
0 Kudos

hi ,

Try using the FM 'SO_NEW_DOCUMENT_ATT_SEND_API1'


 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.

  DATA:   T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
          T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
          T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
          T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
          T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
          W_CNT TYPE I,
          W_SENT_ALL(1) TYPE C,
          W_DOC_DATA LIKE SODOCCHGI1.

  LD_EMAIL   = P_EMAIL.
  LD_MTITLE = P_MTITLE.
  LD_FORMAT              = P_FORMAT.
  LD_ATTDESCRIPTION      = P_ATTDESCRIPTION.
  LD_ATTFILENAME         = P_FILENAME.
  LD_SENDER_ADDRESS      = P_SENDER.
  LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.


* Fill the document data.
  W_DOC_DATA-DOC_SIZE = 1.

* Populate the subject/generic message attributes
  W_DOC_DATA-OBJ_LANGU = SY-LANGU.
  W_DOC_DATA-OBJ_NAME  = 'SAPRPT'.
  W_DOC_DATA-OBJ_DESCR = LD_MTITLE .
  W_DOC_DATA-SENSITIVTY = 'F'.

* Fill the document data and get size of attachment
  CLEAR W_DOC_DATA.
  READ TABLE IT_ATTACH INDEX W_CNT.
  W_DOC_DATA-DOC_SIZE =
     ( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).
  W_DOC_DATA-OBJ_LANGU  = SY-LANGU.
  W_DOC_DATA-OBJ_NAME   = 'SAPRPT'.
  W_DOC_DATA-OBJ_DESCR  = LD_MTITLE.
  W_DOC_DATA-SENSITIVTY = 'F'.
  CLEAR T_ATTACHMENT.
  REFRESH T_ATTACHMENT.
  T_ATTACHMENT[] = IT_ATTACH[].

* Describe the body of the message
  CLEAR T_PACKING_LIST.
  REFRESH T_PACKING_LIST.
  T_PACKING_LIST-TRANSF_BIN = SPACE.
  T_PACKING_LIST-HEAD_START = 1.
  T_PACKING_LIST-HEAD_NUM = 0.
  T_PACKING_LIST-BODY_START = 1.
  DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.
  T_PACKING_LIST-DOC_TYPE = 'RAW'.
  APPEND T_PACKING_LIST.

* Create attachment notification
  T_PACKING_LIST-TRANSF_BIN = 'X'.
  T_PACKING_LIST-HEAD_START = 1.
  T_PACKING_LIST-HEAD_NUM   = 1.
  T_PACKING_LIST-BODY_START = 1.

  DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.
  T_PACKING_LIST-DOC_TYPE   =  LD_FORMAT.
  T_PACKING_LIST-OBJ_DESCR  =  LD_ATTDESCRIPTION.
  T_PACKING_LIST-OBJ_NAME   =  LD_ATTFILENAME.
  T_PACKING_LIST-DOC_SIZE   =  T_PACKING_LIST-BODY_NUM * 255.
  APPEND T_PACKING_LIST.

* Add the recipients email address
  CLEAR T_RECEIVERS.
  REFRESH T_RECEIVERS.
  LOOP AT TB_EMAIL.
    T_RECEIVERS-RECEIVER = TB_EMAIL-EMAIL.
    T_RECEIVERS-REC_TYPE = 'U'.
    T_RECEIVERS-COM_TYPE = 'INT'.
    T_RECEIVERS-NOTIF_DEL = 'X'.
    T_RECEIVERS-NOTIF_NDEL = 'X'.
    APPEND T_RECEIVERS.
  ENDLOOP.
  W_SENT_ALL = 'X'.


  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
       EXPORTING
            DOCUMENT_DATA              = W_DOC_DATA
            PUT_IN_OUTBOX              = 'X'
*            SENDER_ADDRESS             = LD_SENDER_ADDRESS
*            SENDER_ADDRESS_TYPE        = LD_SENDER_ADDRESS_TYPE
            COMMIT_WORK                = 'X'
       IMPORTING
            SENT_TO_ALL                = W_SENT_ALL
       TABLES
            PACKING_LIST               = T_PACKING_LIST
            OBJECT_HEADER              = OBJHEAD
            CONTENTS_BIN               = T_ATTACHMENT
            CONTENTS_TXT               = IT_MESSAGE
            RECEIVERS                  = T_RECEIVERS
       EXCEPTIONS
            TOO_MANY_RECEIVERS         = 1
            DOCUMENT_NOT_SENT          = 2
            OPERATION_NO_AUTHORIZATION = 4
            OTHERS                     = 99.

*
  SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
  IF SY-SUBRC NE 0.
    MESSAGE E000 WITH 'Error occurred while sending'.
  ELSE.
    MESSAGE I000 WITH 'The document was sent'.
  ENDIF.

hope this will help

Former Member
0 Kudos

solved