Skip to Content
0
Former Member
Mar 25, 2008 at 11:10 AM

Problem on sending email

29 Views

Hi all,

I have a problem trying to send an attached file by email in a form.

This is my form:

FORM f_invio_mail.

DATA: listobject LIKE abaplist OCCURS 0 WITH HEADER LINE.

DATA: listasci LIKE btcsyslog OCCURS 0 WITH HEADER LINE.

DATA: docdata LIKE sodocchgi1.

DATA: objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE.

DATA: reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.

DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.

DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: tb_adr6 LIKE adr6 OCCURS 10 WITH HEADER LINE.

DATA: va_request_id LIKE tsp01-rqident.

DATA: tab_lines TYPE i,

doc_size TYPE i,

att_type LIKE soodk-objtp.

CLEAR: listobject, docdata, objpack, reclist, va_request_id,

tab_lines, objhead, objtxt, listasci, tb_adr6.

REFRESH: listobject, objpack, reclist, objhead, objtxt,

listasci, tb_adr6.

OPEN DATASET p_output FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

READ DATASET p_output INTO listasci.

IF sy-subrc NE 0.

EXIT.

ENDIF.

APPEND listasci.

ENDDO.

CLOSE DATASET p_output.

  • Title and Description

docdata-obj_name = 'Prova'.

CONCATENATE 'prova' '-' INTO docdata-obj_descr.

CLEAR objtxt.

APPEND objtxt.

  • Write Packing List (Main)

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.

docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

CLEAR objpack-transf_bin.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-obj_name = 'TEXT'.

objpack-obj_descr = 'Text mail'.

objpack-body_num = tab_lines.

objpack-doc_type = 'RAW'.

APPEND objpack.

LOOP AT listasci.

objtxt = listasci.

APPEND objtxt.

ENDLOOP.

  • Write Packing List (Attachment)

CLEAR: tab_lines, listasci.

DESCRIBE TABLE listasci LINES tab_lines.

READ TABLE listasci INDEX tab_lines.

objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( listasci ).

objpack-head_start = 2.

objpack-head_num = 0.

objpack-body_start = 2.

objpack-body_num = tab_lines.

objpack-doc_type = 'PDF'.

objpack-obj_name = 'ATTACH'.

CONCATENATE 'descrizione' 'prova' INTO objpack-obj_descr.

APPEND objpack.

  • select smtp_addr up to 1 rows from adr6

  • into reclist-receiver

  • where addrnumber = lfa1-adrnr.

CLEAR reclist.

reclist-receiver = 'xxx.yyy@zzz.com'.

reclist-express = 'X'.

reclist-rec_type = 'U'.

APPEND reclist.

  • endselect.

  • copy recipents

CLEAR reclist.

reclist-receiver = 'aaa.bbb@ccc.com'.

reclist-express = 'X'.

reclist-rec_type = 'U'.

reclist-copy = 'X'.

APPEND reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = docdata

put_in_outbox = 'X'

TABLES

packing_list = objpack

object_header = objhead

contents_txt = objtxt

receivers = reclist

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.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " invio_mail

I have no error messages, but in the transaction SOST i don't see my sending request.

Can you please help me? Thanks all,

Enrico