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 :

envoi mail html avec utl_smtp


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Par défaut envoi mail html avec utl_smtp
    bonjour,
    ma question est simple: je voudrais savoir comment envoyer un mail/fax au format html avec le package utl_smtp

    voici mon code :

    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
    19
    20
    21
    22
    23
    24
    25
     
    declare
    serveursmtp varchar2(100) := 'smtp.vialtis.com';
    cnx utl_smtp.connection;
    exp varchar2(100) := 'relance-ic@vialtis.com';
    text varchar2(100) := '::0146639881' || CHR(13) || CHR(10) || '<html><body bgcolor="red">ceci est un test denvoi vers un fax</body<</html>';
    sujet varchar2(100) := 'test fax';
    dest varchar2(100) := 'fax@vialtis.com';
     
     
    begin 
    cnx := utl_smtp.open_connection(serveursmtp);
    utl_smtp.helo(cnx,serveursmtp);
    utl_smtp.mail(cnx,exp);
    utl_smtp.rcpt(cnx,dest);
    utl_smtp.open_data(cnx);
    utl_smtp.write_data(cnx,'FROM' || ': ' || exp || utl_tcp.crlf);
    utl_smtp.write_data(cnx,'TO' || ': ' || dest || utl_tcp.crlf);
    utl_smtp.write_data(cnx,'SUBJECT' || ': ' || sujet || utl_tcp.crlf);
    --utl_smtp.write_data(cnx,'Content-Type: text/html;' || utl_tcp.crlf);
    utl_smtp.write_data(cnx, utl_tcp.crlf||text);
    utl_smtp.close_data(cnx);
    utl_smtp.quit(cnx);
     
    end;
    comme vous pouvez le voir j'ai essayé en spécifiant le content type
    --utl_smtp.write_data(cnx,'Content-Type: text/html;' || utl_tcp.crlf);

    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Par défaut html
    je crois que la solution est d'envoyer ma page html en pièce jointe
    quel est le code PL/SQL permettant de mettre une pièce jointe

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    CREATEORREPLACEPROCEDURE Html_Email(p_to INVARCHAR2,
    p_from INVARCHAR2,
    p_subject INVARCHAR2,
    p_text INVARCHAR2DEFAULTNULL,
    p_html INVARCHAR2DEFAULTNULL,
    p_smtp_hostname INVARCHAR2,
    p_smtp_portnum INVARCHAR2)IS
    l_boundary VARCHAR2(255)DEFAULT'a1b2c3d4e3f2g1';
    l_connection utl_smtp.connection;
    l_body_html CLOB:= EMPTY_CLOB;
    l_offset NUMBER;
    l_ammount NUMBER;
    l_temp VARCHAR2(32767)DEFAULTNULL;
    l_dest VARCHAR2(32767);
    l_dest_tmp VARCHAR2(32767);
    BEGIN
    -------------------------------
    -- Procedure d'envoi de mail --
    -------------------------------
    l_dest := p_to;
    l_connection := utl_smtp.open_connection(p_smtp_hostname, p_smtp_portnum);
    utl_smtp.helo(l_connection, p_smtp_hostname);
    utl_smtp.mail(l_connection, p_from);
    WHILE INSTR(l_dest,',')!=0LOOP
    l_dest_tmp := SUBSTR(l_dest,1, INSTR(l_dest,',')-1);
    l_dest := SUBSTR(l_dest, INSTR(l_dest,',')+1);
    utl_smtp.rcpt(l_connection, l_dest_tmp);
    ENDLOOP;
    utl_smtp.rcpt(l_connection, l_dest);
    l_temp := l_temp || 'MIME-Version: 1.0' || CHR(13) || CHR(10);
    l_temp := l_temp || 'To: ' || p_to || CHR(13) || CHR(10);
    l_temp := l_temp || 'From: ' || p_from || CHR(13) || CHR(10);
    l_temp := l_temp || 'Subject: ' || p_subject || CHR(13) || CHR(10);
    l_temp := l_temp || 'Reply-To: ' || p_from || CHR(13) || CHR(10);
    l_temp := l_temp || 'Content-Type: multipart/alternative; boundary=' ||
    CHR(34) || l_boundary || CHR(34) || CHR(13) || CHR(10);
    dbms_lob.createtemporary(l_body_html,FALSE,10);
    dbms_lob.WRITE(l_body_html, LENGTH(l_temp),1, l_temp);
    l_offset := dbms_lob.getlength(l_body_html)+1;
    l_temp :='--' || l_boundary || CHR(13) || CHR(10);
    l_temp := l_temp || 'content-type: text/plain; charset=windows-1252' ||
    CHR(13) || CHR(10) || CHR(13) || CHR(10);
    
    
    A suivre...

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    ... suite et fin

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    dbms_lob.WRITE(l_body_html, LENGTH(l_temp), l_offset, l_temp);
    l_offset := dbms_lob.getlength(l_body_html)+1;
    dbms_lob.WRITE(l_body_html, LENGTH(p_text), l_offset, p_text);
    l_temp := CHR(13) || CHR(10) || CHR(13) || CHR(10) || '--' ||
    l_boundary || CHR(13) || CHR(10);
    l_temp := l_temp || 'content-type: text/html; charset=windows-1252' ||
    CHR(13) || CHR(10) || CHR(13) || CHR(10);
    l_offset := dbms_lob.getlength(l_body_html)+1;
    dbms_lob.WRITE(l_body_html, LENGTH(l_temp), l_offset, l_temp);
    l_offset := dbms_lob.getlength(l_body_html)+1;
    dbms_lob.WRITE(l_body_html, LENGTH(p_html), l_offset, p_html);
    l_temp := CHR(13) || CHR(10) || '--' || l_boundary || '--' || CHR(13);
    l_offset := dbms_lob.getlength(l_body_html)+1;
    dbms_lob.WRITE(l_body_html, LENGTH(l_temp), l_offset, l_temp);
    l_offset :=1;
    l_ammount :=1900;
    utl_smtp.open_data(l_connection);
    WHILE l_offset < dbms_lob.getlength(l_body_html)LOOP
    utl_smtp.write_data(l_connection, dbms_lob.SUBSTR(l_body_html, l_ammount, l_offset));
    l_offset := l_offset + l_ammount;
    l_ammount := LEAST(1900, dbms_lob.getlength(l_body_html)- l_ammount);
    ENDLOOP;
    utl_smtp.close_data(l_connection);
    utl_smtp.quit(l_connection);
    dbms_lob.freetemporary(l_body_html);
    EXCEPTION
    WHENOTHERSTHEN
    ROLLBACK;
    END;
    /
    

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Par défaut merci
    merci bcp je teste

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Apparament, le copier/coller a supprimé pas mal d'espaces !

    Vous pouvez retirer le code correct à cet url:
    http://sheikyerbouti.developpez.com/tmp/HTML_EMAIL.PRC

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Par défaut
    comment je pourrais appeler un trigger "create or replace procedure" depuis oracle forms

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [UNIX] envoi de mail HTML avec mailx
    Par darinze dans le forum Développement
    Réponses: 3
    Dernier message: 21/09/2011, 14h24
  2. Réponses: 4
    Dernier message: 19/03/2007, 12h03
  3. Réponses: 1
    Dernier message: 22/01/2007, 09h08
  4. Réponses: 4
    Dernier message: 06/03/2006, 16h14
  5. [CSS] Envoi de mail html avec CSS et image jointe
    Par firejocker dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 03/03/2006, 08h53

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