Email con ficheros adjuntos

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Bedwir_cv
    Junior Member
    • abr
    • 2

    #1

    Email con ficheros adjuntos

    Buenos días a todos/as.

    Queremos enviar E-mails con ficheros adjuntos. Se como enviar un pdf adjunto a un e-mail con SO_DOCUMENT_SEND_API1, pero lo que quiere el usuario es poder seleccionar él los ficheros del PC (ya sean .TXT, .DOC o lo que se le antoje) y adjuntarlos en el mail.

    ¿Como se podría hacer eso? ¿Hay alguna función que permita darle la ruta y nombre del fichero y que envié el mail con ese fichero adjunto?

    Gracias, saludos.
  • kiboqac
    Member
    • mar
    • 55

    #2
    Directamente no creo que puedas hacerlo.

    Deberas hacer un Download de los archivos, tenerlos en una tabla interna y despues adjuntarlos al mail...

    Si esa solucion te sirve; te paso algunas funciones para que puedas hacerlo pero si revisas en este foro, vas a encontrar todas las respuestas.
    Kibo

    Comentario

    • julianvc
      Member
      • mar
      • 69

      #3
      Buenos días.
      Yo hice algo parecido, pero enviando el correo desde sap, usando el outlook.

      Lo primero que hice fue hacer al usuario que seleccione el fichero a enviar:

      FORM muestra_ruta_fic.

      DATA p_file LIKE rlgrap-filename .
      DATA p_tipo LIKE rlgrap-filetype .

      p_tipo = 'DAT'.

      PERFORM f_help_file USING p_file.

      txt_fichero = p_file.
      ENDFORM. "muestra_ruta_fic


      ahora ejecutaría el código para el envio de este fichero:

      DATA: outlook TYPE ole2_object. "Outlook.Application
      DATA: item TYPE ole2_object. "Outlook.MailItem
      DATA: lattach TYPE ole2_object . "Outlook.Attachement
      DATA: subject(255) TYPE c.
      DATA: w_answer(50).
      DATA: pregunta(200).
      DATA: cuerpo_mensaje(500).
      DATA: objcont LIKE solisti1 OCCURS 5 WITH HEADER LINE.
      DATA: gv_body TYPE string.


      pregunta = 'Enviar correo electrónico?.'.

      CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
      text_question = pregunta
      IMPORTING
      answer = w_answer
      EXCEPTIONS
      text_not_found = 1
      OTHERS = 2.

      IF w_answer = '1'.

      objcont-line = zsac_cod_inc-descripcion.
      APPEND objcont.
      objcont-line = zsac_tipo_inc-descripcion.
      APPEND objcont.

      *Enviar mail con fichero adjunto
      IF txt_fichero <> ''.
      CREATE OBJECT outlook 'outlook.application'.

      CALL METHOD OF outlook 'CreateItem' = item
      EXPORTING
      #1 = '0'.

      SET PROPERTY OF item 'To' = email.

      * AQUI RELLENO EL CUERPO DEL MENSAJE CON LO ALMACENADO EN OBJCONT

      CLEAR gv_body.
      LOOP AT objcont.
      CONCATENATE gv_body objcont-line INTO gv_body.
      CONCATENATE gv_body cl_abap_char_utilities=>cr_lf INTO gv_body.

      ENDLOOP.
      SET PROPERTY OF item 'BODY' = gv_body.




      * OPCION 2:
      * concatenate zsac_cod_inc-descripcion ' ' zsac_tipo_inc-descripcion zsac_cau_des-descripcion zdepartamentos-descripcion zmaterial-maktx txt_tipo_llamada txt_destinos into cuerpo_mensaje.
      *
      * SET PROPERTY OF item 'Body' = cuerpo_mensaje.


      *AQUI ES DONDE LE INDICO EL FICHERO A ENVIAR POR CORREO

      SET PROPERTY OF item 'Subject' = texto_correo.

      CALL METHOD OF item 'Attachments' = lattach.

      CALL METHOD OF lattach 'Add'
      EXPORTING
      #1 = txt_fichero.

      *CON ESTA ENVIA EL CORREO DIRECTAMENTE
      CALL METHOD OF item 'Send'.
      *CON ESTA OTRA ABRIRÍA LA VENTANA DEL OUTLOOK
      * CALL METHOD OF ITEM 'DISPLAY'.

      FREE OBJECT item.
      FREE OBJECT outlook.
      FREE OBJECT lattach.

      Comentario

      Trabajando...