| DATA: lt_text TYPE bcsy_text,"Conterá o conteúdo do email |
| ls_text TYPE soli,"Work Area de lt_text |
| lv_sent TYPE os_boolean."Receberá a confirmação de envio |
| |
| *Variáveis para enviar o email |
| DATA: go_request TYPE REF TO cl_bcs, |
| go_document TYPE REF TO cl_document_bcs, |
| go_sender TYPE REF TO cl_sapuser_bcs, |
| go_recipient TYPE REF TO if_recipient_bcs, |
| go_exception TYPE REF TO cx_bcs. |
| |
| *Preenchendo o conteúdo do email |
| ls_text = 'Essa é a primeira linha de conteúdo do email'. |
| APPEND ls_text TO lt_text. |
| ls_text = 'Essa é a segunda linha...'. |
| APPEND ls_text TO lt_text. |
| |
| *É necessário o tratamento de erros com try...catch |
| TRY. |
| *Método utilizado para criar um pedido de envio persistente |
| go_request = cl_bcs=>create_persistent(). |
| |
| *Monta e adiciona a estrutura do e-mail |
| co_document = cl_document_bcs=>create_document( |
| i_type = 'RAW' |
| i_text = lt_text |
| i_language = sy-langu"P - Português |
| i_subject = 'Assunto do email'). |
| co_request->set_document(co_document). |
| |
| *Remetente do e-mail |
| *obs: por default, o envio é feito pelo usuário logado. |
| *Caso queira alterar, adicione esse método: |
| go_sender = cl_sapuser_bcs=>create( 'RISHIDA'). |
| CALL METHOD go_request->set_sender |
| EXPORTING |
| i_sender = go_sender. |
| |
| *Adicionando o destinatário ao e-mail |
| go_recipient = |
| cl_cam_address_bcs=>create_internet_address( 'ab@cd.com'). |
| CALL METHOD go_request->add_recipient |
| EXPORTING |
| i_recipient = go_recipient |
| i_express = 'X'. |
| |
| *Marca o envio como imediato ('X') ou não (space) |
| CALL METHOD co_request->set_send_immediately( 'X'). |
| |
| *Envia email, e retorna true ('X') ou false ('') na lv_sent |
| CALL METHOD go_request->send( |
| EXPORTING |
| i_with_error_screen = 'X' |
| RECEIVING |
| result = lv_sent). |
| COMMIT WORK. |
| |
| CATCH cx_bcs INTO go_exception. |
| *Tratamento do erro try... catch |
| ENDTRY. |
|
Nenhum comentário:
Postar um comentário