안녕하세요!! 또 도움을 받아보고자 글을 남김니다..
메일을 보내야 합니다.
아래와 같은 프로세스 입니다.
1. 프로그램 실행 > 필요한 데이터들 체크박스에 체크 > 메일 보내기 버튼 클릭
2. 체크된 데이터들의 메일주소 읽음.
3. outlook으로 메일 발송
이상..
3번부터 어이 해야할지 모르겠습니다.
메일 주소만 던져주고 outlook 메크로 저장된 파일을 읽어와서 써야 하는것인지.
어떻게 해야할지 모르겠습니다.
자료나, 방법을 알고 계시면 공유해주세요!!
감사합니다!!!
댓글 13
-
버미!
2009.11.18 18:35
-
버미!
2009.11.18 18:36
제가 메일 보내기 사용하는 소스입니다. 적절히 수정해서 사용하세요..
궁금한것이 있으시면 리플다시고요..
-
츄리닝
2009.11.18 19:34
감사합니다^-^
테스트 해보고 있는 중인데요..
sap 버전과 상관없이 또 OUTLOOK 셋팅에 상관없는 건가요?
Function 모듈에서 'SO_DOCUMENT_SEND_API1' 가 검색이 되긴 하는데요.
-
im 해성
2009.11.18 20:12
-
츄리닝
2009.11.18 20:55
'SO_DOCUMENT_SEND_API1' ,'SO_NEW_DOCUMENT_ATT_SEND_API1'
이 펑션들을 처음 써보는 거라..
역시나 어렵네요..
아~~~~~ ㅋ 자꾸 리턴코드 5가 나와요 ㅋㅋ -
안규
2009.11.18 23:16
실행은 되는데 스마트폼을 구현할 줄 알아야 한다는 전제가 깔려있군요
메일전송을 위한 다른 세팅도 필요한가요? BC 쪽 세팅이라던지... -
츄리닝
2009.11.18 23:38
SOLI_TAB
데이터 타입이 없다고 나오는데요..
이건 뭘까요 ㅜㅠ -
엉큼고냥이
2009.11.19 02:00
BC쪽에서 // SCOT 에서 SMTP 셋팅이 되어있나 확인해보시면 됩니다^^ -
안규
2009.11.19 02:16
SMTP 셋팅은 자료 참고해서 완료 하였고요, 위에 프로그램으로 테스트 중인데,
SO_NEW_DOCUMENT_ATT_SEND_API1 펑션 실행 후
리턴 값이 'document_not_sent' 이걸로 떨어 집니다, 수정이나 참고 할 사항이 있을까요?
-
버미!
2009.11.19 02:38
앗..리플이 많이 달렸네..
SDN에 있는 자료인데.. 참고해보세요..^^
http://wiki.sdn.sap.com/wiki/display/Snippets/Abap+EMAIL+Program
http://wiki.sdn.sap.com/wiki/display/Snippets/Sending+mail+with+attachment
-
안규
2009.11.19 03:39
대부분 세팅을 마친것 같은데
'RFC 오류 때문에 노드 SMTP(으)로의 메세지를 전송할 수 없었습니다'
이런 오류 메세지가 발생합니다.
기존에 출력하던 양식을 연결해보았는데요,
혹시 스마트 폼 속성이라든지 특별히 정의 할게 있는지 알고 싶습니다.
-
츄리닝
2009.11.19 22:56
BC 셋팅과 Exchange 서버 셋팅 방법 메뉴얼이 있으시면 좀 부탁드립니다!!!!!!!
-
안규
2009.11.19 23:07
http://help.sap.com/saphelp_nw04/helpdata/en/2b/d925bf4b8a11d1894c0000e8323c4f/frameset.htm
참고 하시면 될것 같은데...저도 관련 지식이 부족하다 보니 어렵네요ㅠ
Mail Receive List *****************
DATA : BEGIN OF lt_mail OCCURS 0,
zmail_addr(241),
END OF lt_mail.
**************************************
DATA : BEGIN OF lt_receiver OCCURS 0,
zuid type lfa1-lifnr,
END OF lt_receiver.
* Internal Table declarations
DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline TYPE TABLE OF tline WITH HEADER LINE,
i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
* Email Send Result
l_object_id TYPE sofolenti1-object_id,
sent_to_all LIKE sonv-flag,
new_object_id LIKE sofolenti1-object_id,
* Objects to send mail.
i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
* Work Area declarations
wa_objhead TYPE soli_tab,
w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl,
wa_doc_chng TYPE sodocchgi1,
w_data TYPE sodocchgi1,
wa_buffer TYPE string, "To convert from 132 to 255
* Variables declarations
v_form_name TYPE rs38l_fnam,
v_len_in LIKE sood-objlen,
v_len_out LIKE sood-objlen,
v_len_outn TYPE i,
v_lines_txt TYPE i,
v_lines_bin TYPE i,
v_filename(255).
* Attachment
REFRESH: i_reclist, i_objtxt, i_objbin, i_objpack.
CLEAR wa_objhead.
* Get receiver list C01234
SELECT zuid
INTO CORRESPONDING FIELDS OF TABLE lt_receiver
FROM zsmts185
WHERE vkorg eq p_vkorg
and vkbur eq p_vkbur
and zyorn eq 'Y'.
* zuid필드 alpha conversion C01234
LOOP AT lt_receiver.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lt_receiver-zuid
IMPORTING
OUTPUT = lt_receiver-zuid.
MODIFY lt_receiver.
ENDLOOP.
* Get Email Address
SELECT DISTINCT b~smtp_addr AS zmail_addr
INTO TABLE lt_mail
FROM lfa1 AS a INNER JOIN adr6 AS b ON a~adrnr = b~addrnumber
FOR ALL ENTRIES IN lt_receiver
WHERE a~lifnr = lt_receiver-zuid.
* Create Message Body Title and Description
PERFORM set_mail_contents TABLES i_objtxt
p_data
USING p_vkorg p_vkbur.
DESCRIBE TABLE i_objtxt LINES v_lines_txt.
READ TABLE i_objtxt INDEX v_lines_txt.
wa_doc_chng-obj_name = 'smartform'.
wa_doc_chng-expiry_dat = sy-datum + 10.
CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
EXPORTING
input = sy-datlo
IMPORTING
output = l_date.
l_vkbur_d = gc_sm->get_soff_desc( p_vkbur ).
CONCATENATE l_vkbur_d l_date 'Order Status' INTO wa_doc_chng-obj_descr
SEPARATED BY space.
* wa_doc_chng-obj_descr = . "Title
* wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = v_lines_txt * 255.
* Main Text
CLEAR i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'HTM'.
APPEND i_objpack.
* Attachment (pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
DESCRIBE TABLE i_objbin LINES v_lines_bin.
* File Name
* READ TABLE i_objbin INDEX v_lines_bin.
* i_objpack-doc_size = v_lines_bin * 255 .
* i_objpack-body_num = v_lines_bin.
* i_objpack-doc_type = 'PDF'.
* i_objpack-obj_name = 'smart'.
* i_objpack-obj_descr = v_filename. "File Name
* APPEND i_objpack.
* Mail Receiver
CLEAR i_reclist.
LOOP AT lt_mail.
* i_reclist-receiver = gt_rec-zmail_addr.
i_reclist-receiver = lt_mail-zmail_addr. "'mb07.park@partner.samsung.com'.
i_reclist-rec_type = 'U'.
APPEND i_reclist.
ENDLOOP.
* CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
* EXPORTING
* document_data = wa_doc_chng
* put_in_outbox = 'X'
* commit_work = 'X'
* IMPORTING
* new_object_id = l_object_id
* TABLES
* packing_list = i_objpack
* object_header = wa_objhead
* contents_bin = i_objbin
* contents_txt = i_objtxt
* receivers = i_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.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
sender_address = 'SM-BATCH' "Sender
* SENDER_ADDRESS_TYPE = 'B'
commit_work = 'X'
IMPORTING
sent_to_all = sent_to_all
new_object_id = new_object_id
TABLES
packing_list = i_objpack
object_header = wa_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_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 s000(zsmsmsg) WITH 'Error When Sending the Email'.
perform save_log TABLES p_data
using 'F'.
ELSE.
MESSAGE s000(zsmsmsg) WITH 'Mail sent.'.
perform save_log TABLES p_data
using 'S'.
ENDIF.