2009-10-07 8 views
2

J'essaie d'envoyer un courriel en utilisant utl_smtp avec Oracle, y compris les caractères norvégiens (å æ ø). Les caractères sont stockés et affichés correctement dans la base de données, mais apparaissent comme des points d'interrogation dans l'e-mail.Caractères spéciaux dans le courrier électronique d'Oracle pl/sql

Mon jeu de caractères de base de données est WE8MSWIN1252

J'ai essayé différentes têtes MIME Content-Type dans l'e-mail, y compris « text/plain; charset = "win-1252" ', cela ne semble pas aider.

Répondre

4

Par défaut smtp est 7bit ascii (un peu vieux tech :). Vous devez utiliser UTL_SMTP.write_data et des documentation:

données texte (VARCHAR2) envoyés à l'aide WRITE_DATA est converti en US7ASCII avant qu'il ne soit envoyé. Si le texte contient des caractères codés sur plusieurs octets, chaque caractère codé sur plusieurs octets dans le texte que ne peut pas être converti en US7ASCII est remplacé par un '?' personnage. Si extension 8BITMIME est négocié avec le serveur SMTP en utilisant le EHLO subprogram, multi-octets de données VARCHAR2 peuvent être envoyées en convertissant d'abord le texte à RAW à l'aide du paquet UTL_RAW, puis envoyer les données brutes en utilisant WRITE_RAW_DATA.

Il existe un sample demo package on OTN qui indique comment envoyer des courriels multi-octets.

+0

Merci beaucoup Vincent! – fdl

Questions connexes