No post de hoje vou mostrar como enviar mensagems de email no formato HTML e com um arquivo PDF em anexo, obviamente vocês poderão adaptar para outros tipos de anexo.
Nesse exemplo eu estou utilizando a função SO_SEND_DOCUMENT_API, essa a forma mais antiga de enviar mensagens de email através de ABAP, atualmente você pode fazer isso através da classe BCS.
Antes de enviar qualquer mensagem cetifique-se junto ao BASIS se o sistema está configurado para enviar emails (ver SCON).
Exemplo completo:
Entendendo o exemplo:
Rotina de envio
Nessa rotina eu defini duas macros, new_line e
add_receiver, para adicionar o conteudo da mensagem em formato html e para adicionar destinatários respectivamente.
Na linha 50 é adicionado o email do destinatário.
Na linha 51 é adicionado o email ou lista da equipe de suporte em cópia oculta.
Da linha 53 a 55 é adicionado o conteudo da mensagem.
Da 59 a 66 o corpo da mensagem é adicionado ao packing list.
Da linha 68 a 72 é configurado o assunto e o tamanho da mensagem
Na linha 74 é chamada a rotina para anexar o PDF, passando o packing list, a tabela onde conteudo binário do PDF deve ser colocado e o nome do arquivo a ser lido.
Na linha 78 é chamada a função para envio da mensagem, atenção especial aos seguintes parâmetros:
put_in_outbox: Coloque X se você deseja visualizar a mensagem pela SOST
sender_address: Aqui você informa um email ou nome do usuário SAP, dependendo do que for configurado em sender_address_type.
sender_address_type: Informe SMTP se deseja que o remetente seja um email ou deixe o valor padrão B quando o remetente for um usuário SAP.
sender_address: Aqui você informa um email ou nome do usuário SAP, dependendo do que for configurado em sender_address_type.
sender_address_type: Informe SMTP se deseja que o remetente seja um email ou deixe o valor padrão B quando o remetente for um usuário SAP.
Se você omitir esses dois parâmetros, será utilizado o email do usuário que está executando o programa (ver SU01)
Rotina para anexar PDF
Na linha 122 o arquivo PDF é lido em formato binário através do método GUI_UPLOAD da classe cl_gui_frontend_services.
Na linha 131 o conteudo binário é ajustado para 255 caracteres. Sem esse trecho talvez você enfrente o erro MESSAGE TYPE X.
Na linha 144 o conteúdo binário é adicionado a tabela de conteúdo binário que será passada para a função.
Da linha 146 a 156 o conteúdo binário é configurado no packing list.
Nenhum comentário:
Postar um comentário