CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  SQL Anywhere Studio

求教用Oracle发送邮件的乱码问题!

楼主LornWolf(绝地苍狼)2002-04-03 15:00:46 在 其他数据库开发 / SQL Anywhere Studio 提问

DECLARE    
   
  SendorAddress   Varchar2(30)   :=   'CIM   Oracle   Server';    
  ReceiverAddress   varchar2(30)   :=   'szz@trans-cosmos.com.cn';    
  EmailServer   varchar2(30)   :=   'mail.trans-cosmos.com.cn';    
  Port   number   :=   25;    
   
  conn   UTL_SMTP.CONNECTION;    
   
  crlf   VARCHAR2(   2   ):=   CHR(   13   )   ||   CHR(   10   );    
   
  mesg   VARCHAR2(   4000   );    
  mesg_body   varchar2(4000);    
   
   
  BEGIN    
   
  conn:=   utl_smtp.open_connection(   EmailServer,   Port   );    
  utl_smtp.helo(   conn,   EmailServer   );    
  utl_smtp.mail(   conn,   SendorAddress);    
  utl_smtp.rcpt(   conn,   ReceiverAddress   );    
   
  mesg:=    
  'Date:'   ||   TO_CHAR(   SYSDATE,   'dd   Mon   yy   hh24:mi:ss'   )   ||   crlf   ||    
  'From:'   ||   SendorAddress   ||   crlf   ||    
  'Subject:   Sending   Mail   From   Database'   ||   crlf   ||    
  'To:   '||   ReceiverAddress   ||   crlf   ||    
  ''   ||   crlf   ||    
  '测试用Oracle发送邮件!'   ||   crlf;    
   
  utl_smtp.data(   conn,   mesg   );    
  utl_smtp.quit(   conn   );    
   
  END;    
   
  接收到的邮件不能显示汉字,都是些“??”,请各位帮忙!!!  
  问题点数:20、回复次数:11Top

1 楼LornWolf(绝地苍狼)回复于 2002-04-04 09:09:38 得分 0

upTop

2 楼LornWolf(绝地苍狼)回复于 2002-04-04 13:28:43 得分 0

DECLARE    
   
  SendorAddress   Varchar2(30)   :=   'CIM   Oracle   Server';    
  ReceiverAddress   varchar2(30)   :=   'szz@trans-cosmos.com.cn';    
  EmailServer   varchar2(30)   :=   'mail.trans-cosmos.com.cn';    
  Port   number   :=   25;    
   
  conn   UTL_SMTP.CONNECTION;    
   
  crlf   VARCHAR2(   2   ):=   CHR(   13   )   ||   CHR(   10   );    
   
  mesg   VARCHAR2(   4000   );    
  mesg_body   varchar2(4000);    
   
   
  BEGIN    
   
  conn:=   utl_smtp.open_connection(   EmailServer,   Port   );    
  utl_smtp.helo(   conn,   EmailServer   );    
  utl_smtp.mail(   conn,   SendorAddress);    
  utl_smtp.rcpt(   conn,   ReceiverAddress   );    
   
  mesg:=    
  'Content-Type:   text/plain;   Charset=GB2312'   ||     crlf   ||    
  'Date:'   ||   TO_CHAR(   SYSDATE,   'dd   Mon   yy   hh24:mi:ss'   )   ||   crlf   ||    
  'From:'   ||   SendorAddress   ||   crlf   ||    
  'Subject:   Sending   Mail   From   Database'   ||   crlf   ||    
  'To:   '||   ReceiverAddress   ||   crlf   ||    
  'Content-Type:   text/plain;   Charset=GB2312'   ||   crlf   ||  
  ''   ||   crlf   ||    
  '测试用Oracle发送邮件!'   ||   crlf;    
   
  utl_smtp.data(   conn,   mesg   );    
  utl_smtp.quit(   conn   );    
   
  END;Top

3 楼LornWolf(绝地苍狼)回复于 2002-04-04 17:20:00 得分 0

upTop

4 楼KingSunSha(弱水三千)回复于 2002-04-04 17:50:38 得分 20

我没有用过utl_smtp,在资料中也找不到  
  不过按照经验应该是nls_lang设置有问题,数据库端和客户端设置不同引起的。你能查一下两边的nls_lang设置情况吗?  
  Top

5 楼mycode(不写代码)回复于 2002-04-04 18:17:29 得分 0

邮件的乱码,与Oracle的字符集无关。因为邮件的内容,在发送前会先编码。  
   
  Content-Type:   text/plain;   Charset=GB2312  
   
  表示内容采用的字符集格式。  
  加上这一条,显示汉字就不会有问题了。  
  Top

6 楼KingSunSha(弱水三千)回复于 2002-04-04 18:38:01 得分 0

to   mycode(不写代码):  
  可能你漏看了,贴主的代码中已经加入了这段代码,但还是不行。我觉得应该是nls的问题。或者把varchar2类型换成nvarchar2试试看Top

7 楼LornWolf(绝地苍狼)回复于 2002-04-05 09:55:19 得分 0

谢谢两位的帮助,我还想问一下nvarchar2这种数据类型怎么用?Top

8 楼KingSunSha(弱水三千)回复于 2002-04-05 10:15:19 得分 0

nvarchar2的使用和varchar2基本上是一样的,区别在于nvarchar2中每个字的长度取决于nls的设置Top

9 楼LornWolf(绝地苍狼)回复于 2002-04-05 13:31:51 得分 0

我的nls   language是AMERICAN,我应该怎么改?  
  我很菜,请多帮忙,谢谢!!Top

10 楼KingSunSha(弱水三千)回复于 2002-04-05 13:44:16 得分 0

先用select   *   from   v$nls_parameters;察看数据库中nls的设置,然后  
  在unix下就用export   nls_lang=nls_language.nls_territory.nls_characterset来设置环境变量  
  在nt或者win2k下要修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下有关的设置Top

11 楼seventeen_seven(dingding)回复于 2002-04-05 14:48:56 得分 0

在nt或者win2k下要修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下有关的设置:     NLS_LANG     AMERICAN_AMERICA.US7ASCIITop

相关问题

  • aspmail发送的邮件出现乱码
  • 用jmail发送邮件,邮件主题会出现乱码?!
  • 关于Jmail发送日文邮件乱码的问题求救!!!
  • 为什么jmail发送繁体邮件就是要乱码呢?
  • Jmail发送邮件标题出现乱码的问题
  • 使用asp.net发送电子邮件乱码的问题
  • Oracle的乱码
  • 做的发邮件程序发送的邮件是乱码,怎么办
  • 可以用ORACLE发送邮件吗?
  • 问道关于发送邮件的问题.发送邮件出现乱码.不知道怎么解决.

关键词

  • win2k
  • 邮件
  • 代码
  • oracle
  • utl
  • crlf
  • receiveraddress
  • sendoraddress
  • varchar2
  • emailserver

得分解答快速导航

  • 帖主:LornWolf
  • KingSunSha

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo