IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

pb envoi fichier via utl_smtp


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 114
    Par défaut pb envoi fichier via utl_smtp
    Bonjour,

    J'ai une procédure (10gR2) qui utilise utl_smtp pour l'envoi de mail, jusque la pas de pb.
    Par contre je n'arrive pas à joindre une PJ. En fait mon fichier joint est vide.

    Voici la portion de code intéressante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    utl_smtp.write_data
    (connex,
    'From: '||msg_from|| utl_tcp.crlf||tomail||utl_tcp.crlf||
    'Subject: ' || msg_subject ||utl_tcp.crlf||
    'Mime-Version: 1.0' || utl_tcp.crlf||
    'Content-Type: multipart/mixed; '||
    'boundary="0099AAZZAA9900"' || utl_tcp.crlf || '' || utl_tcp.crlf ||
    'This is a Mime message,blabla---' || utl_tcp.crlf ||
    'understand. Parts of the message----' || utl_tcp.crlf ||
    'appears as random charact--' || utl_tcp.crlf ||
    'attachments, then you--' || utl_tcp.crlf ||
    'manually----' || utl_tcp.crlf ||'' || utl_tcp.crlf||
    '--0099AAZZAA9900' || utl_tcp.crlf||
    'Content-Type: text/plain; charset="window-1256"; name="' || fichier1 || '"' || utl_tcp.crlf||
    'Content-Disposition: attachment; filename="' || fichier1 || '"' || utl_tcp.crlf||
    'Content-Transfer-Encoding: quoted-printable' || utl_tcp.crlf|| utl_tcp.crlf||
    '--0099AAZZAA9900--' || utl_tcp.crlf
    );
    En fait je me demande comment indiquer le repertoire ou se trouve le fichier? J'ai bien essayé d'indiquer au niveau de filename le chemin absolu, mais il a été pris comme nom du fichier.
    Est ce que oracle va chercher dans les directories qui ont été déclarées?

    Merci d'avance pour l'aide

    couse 1

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça fonctionnerait avec des DIRECTORY comme UTL_FILE que ça ne m'étonnerait pas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 114
    Par défaut
    Justement le fichier en question que je souhaite récupéré, est préalablement généré par utl_file! Ma directory est donc bien créée.
    Ma dernière question voulait exprimer le fait que ne faisant pas directement référence à une directory dans mon code utilisant utl_smtp,est ce que oracle allait rechercher dans l'ensemble des ses directories le fichier renseigné au niveau de filename?
    Ce qui semble être le cas d'après Orafrance. Mais bon, je ne vois tjs pas d'ou peut provenir le pb!

    Merci pour votre aide
    couse1

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Quel est la taille de ton fichier.
    Il semblerait que les PJ soit limitées à 32 K
    Citation Envoyé par metalink
    Applies to:

    PL/SQL - Version: 10.2.0.1.0
    Information in this document applies to any platform.
    Purpose

    When using UTL_MAIL or UTL_SMTP packages, you have a limitation of 32 KB when sending attachments. This limitation is the same for both Raw (Eg: .pdf files) and Varchar2 (Eg: .txt, .doc etc) attachments. This is because PL/SQL has always been limitted to 32 KB for its variable size. Hence you will not be able to send any attachments of size greater than 32 KB using the UTL Packages which is a major limitation.
    However we can follow a different technique to send Attachments using UTL_SMTP package. This technique is called "Chunking Methodology" i.e.use the method of taking in the Attachments as chunks in order to get an Attachment that exceeds this limitation. Thus by using the "Chunking Methodology", we can overcome this 32 KB Limitation.
    Mais metalink propose un solution de contournement (Note:357385)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 114
    Par défaut
    Non ma PJ est bien inférieure à 32K

    couse1

Discussions similaires

  1. Envoie fichier via ajax avec réponses
    Par abraxis dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2015, 17h28
  2. Réponses: 1
    Dernier message: 22/12/2014, 21h08
  3. [Débutant] Envoie fichier via socket
    Par synolog dans le forum C#
    Réponses: 2
    Dernier message: 13/11/2011, 20h57
  4. envoi fichier via socket
    Par snakemetalgear dans le forum Réseau
    Réponses: 7
    Dernier message: 09/06/2007, 15h55
  5. envoie de fichiers via les formulaires
    Par fabogranqi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/10/2004, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo