Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por Anônimo.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #92636
    Anônimo

      Olá pessoa estou com um problema em enviar anexos usando o utl_smtp, pois na verdade eu já consegui enviar vários anexos e para vários destinatários mas o problema que estou tendo é que no servidor unix onde está o Oracle consigo definir no meu procedimento para enviar email 2 SMPT_SERVER: ‘localhosr’ ou ‘SMTP’ só que está ai o problema pois quando declaro que o SMPT_SERVER é ‘SMTP’ funciona tudo direitinho envia os email e com vários anexos de qualquer formato mas quando declaro SMPT_SERVER ‘localhost’ tenho o problema em anexar mais de 1 fichiero pois ele me parece que agrupa todos os fichieros em 1 só pois desconfio disso porque quando recebo o email vem o anexo com a soma total de todos os ficheiros em KB pois tenho 2 ficheiros de arquivo.jpg(30KB) e docum.pdf(70KB) e quando recebo o email me aparece arquivo.jpg(100KB).

      SCRIPT

      Este é o script que uso para anexar os ficheiros

      bf_FileHandle := BFILENAME(I_vcDirName,I_vcFileName);
      nu_FileLen := DBMS_LOB.GETLENGTH(bf_FileHandle);
      nu_Pos := 1;
      DBMS_LOB.OPEN(bf_FileHandle,DBMS_LOB.LOB_READONLY);

      LOOP
      IF nu_Pos + 57 – 1 > nu_FileLen THEN
      nu_ReadBytes := nu_FileLen – nu_Pos + 1;
      ELSE
      nu_ReadBytes := 57;
      END IF;
      DBMS_LOB.READ(bf_FileHandle,nu_ReadBytes,nu_Pos,dt_Data);
      UTL_SMTP.WRITE_RAW_DATA(IO_Conn,utl_encode.base64_encode(dt_Data));
      nu_Pos := nu_Pos + 57;
      IF nu_Pos > nu_FileLen THEN
      EXIT;
      END IF;
      END LOOP;

      DBMS_LOB.CLOSE(bf_FileHandle);

      Obrigado

      #92637
      Avatar photoRegis Araujo
      Participante

        Ei Midia..!

        Seria legal vc colocar como resolveu…!!

        Abraços..!

        #92638
        Anônimo

          Ok,
          Seguinte o problema que eu estava tendo não era na verdade no meu servidor ‘localhost’ ou ‘SMTP’ e sim como eu estava passando o BODY do email.
          o meu HEAD estava:
          Mime-Version: 1.0
          Content-Type: multipart/mixed; boundary=Boundary;

          e o BODY:
          Content-Type: text/plain; charset=US-ASCII;
          Content-Disposition: inline;
          Content-Transfer-Encoding: text/plain’
          Texto msg…

          –Boundary
          Content-Type: multipart/mixed; ISO-8859-1; name=”arquivo.jpg”;
          Content-Disposition: attachment; filename=”arquivo.jpg”;
          Content-Transfer-Encoding: base64

          –Boundary
          Content-Type: multipart/mixed; ISO-8859-1; name=”docum.pdf”;
          Content-Disposition: attachment; filename=”docum.pdf”;
          Content-Transfer-Encoding: base64

          –Boundary–

          E desta forma meu erro está no (Content-Type: multipart/mixed;) e não na forma como eu tratava cada ficheiro. Mas o que me deixou intrigado foi com esse Type definido como (Content-Type: multipart/mixed;) estava a funcionar os envios de email com os anexos certos quando eu uso o server ‘SMTP’ e somente quando eu troco de server para ‘localhost’ ele me dava problema com os anexos, mas suspeito que seja alguma forma de tratamento que o ‘localhost’ tratava diferente essa é a parte que não compreendi bem mas como consegui resolver sem ser preciso compreender a forma do tratamento ta tudo blz, se alguém souber o porque diz.

          Então para resolver meu problema bastou colocar no
          Content-Type: multipart/mixed;
          –troquei por–
          Content-Type: application/octet-stream;

          E me anexou todos os fichieros no formato (pdf,jpg,txt,rar,zip)

          Se precisarem de mais alguma informação é só pedir.

          Abraços

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.