Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #96708
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Estou utilizando o utl_smtp para envio de e-mail pelo banco, o estranho é que no momento que a mensagem é aberta no outlook a data/hora que aparece no canto superior direito esta adiantada em 1 hora em relação à data/hora que aparece na caixa de entrada.
      O ambiente é Windows 2003 Server, segue abaixo a procedure que envia e-mail.

      CREATE OR REPLACE PROCEDURE MAXIMO_SEND_MAIL( p_mailhost IN VARCHAR2,
      p_sender IN VARCHAR2,
      p_recipient IN VARCHAR2,
      p_subject IN VARCHAR2,
      p_message IN VARCHAR2 ) IS

      mail_conn UTL_SMTP.CONNECTION;

      crlf VARCHAR2( 2 ) := CHR( 13 ) || CHR( 10 );
      mesg VARCHAR2( 1000 );

      BEGIN
      mail_conn := UTL_SMTP.OPEN_CONNECTION( p_mailhost, 25 );

      mesg:=’Date: ‘|| TO_CHAR (SYSDATE, ‘DD/MM/RR HH:MI AM’)|| ‘ ‘|| DBTIMEZONE|| ‘ ‘|| ‘(GMT’|| DBTIMEZONE|| ‘)’|| crlf
      ||
      ‘From: <' || p_sender || '>‘ || crlf
      ||
      ‘Subject: ‘ || p_subject || crlf
      ||
      ‘To: ‘ || p_recipient || crlf
      ||
      ” || crlf
      ||
      p_message;

      UTL_SMTP.HELO( mail_conn, p_mailhost );
      UTL_SMTP.MAIL( mail_conn, p_sender );
      UTL_SMTP.RCPT( mail_conn, p_recipient);
      UTL_SMTP.DATA( mail_conn, mesg );
      UTL_SMTP.QUIT( mail_conn );
      END;

      É necessário fazer alguma configuração, utilizar parâmetro diferente para enviar a mensagem?

      Obrigado.

      Airton

      #96720
      Avatar de VitorLeandroVitorLeandro
      Participante

        Talves seja alguma configuração do Timezone.

        #101676
        Avatar de airoospairoosp
        Participante

          Boa tarde,

          Consegui resolver o problema, alterando a forma como o to_char converte a data/hora na procedure que envia o e-mail.

          Talvez seja útil para alguém.

          Antes:
          mesg:=’Date: ‘|| TO_CHAR (SYSDATE, ‘DD/MM/RR HH:MI AM’)|| ‘ ‘|| DBTIMEZONE|| ‘ ‘|| ‘(GMT’|| DBTIMEZONE|| ‘)’|| crlf

          Depois:
          mesg:=’Date: ‘|| TO_CHAR (SYSTIMESTAMP, ‘dd Mon yyyy hh24:mi:ss TZHTZM’)|| ‘ ‘|| DBTIMEZONE|| ‘ ‘|| ‘(GMT’|| DBTIMEZONE|| ‘)’|| crlf

          Obrigado.

          Airton

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