vb6用CDO发邮件,邮件主题中的中文字符会变乱码,怎么解决?

时间:2022-08-19 06:05:01
    Set email = CreateObject("CDO.Message")
    email.From = "111111111111@qq.com"                          '发址
    email.To = "1111111111111111@qq.com"                          '收址
    email.Subject = "中文字符中文中文中文中文中文中文中文中文222----"                                    '邮件主题

    email.TextBody = ""
--------------------
google了下,人家说了个如果textbody中文变乱码,可以加一句 Email.textbodyPart.Charset = "gb2312" 就行,但是好像没有Email. subjectPart.Charset = "gb2312"这种吧?
要怎么解决呢?多谢!!

14 个解决方案

#1


没有遇到乱码问题呀,你的电脑设置里不是简体中文吗

#2


引用 1 楼 asftrhgjhkjlkttttttt 的回复:
没有遇到乱码问题呀,你的电脑设置里不是简体中文吗
不是编译器里乱码,是邮件发送我收到后它那个主题那个地方的中文字符全变成一堆问号了,比如这样了:??????  .挺奇怪的,正文里都正常.
应该跟电脑设置没关系的吧.
谢谢!!

#3


一定要在From后面再加上<任意邮箱地址>,比如这样:
objMail.From = "系统管理员<system@system.com>" 

#4


引用 3 楼 xxyj6450 的回复:
一定要在From后面再加上<任意邮箱地址>,比如这样:
objMail.From = "系统管理员<system@system.com>"

大侠这个我试了下,不行:
email.Subject = "中文字符中文中文<system@system.com>" 
而且objMail是什么?我用的是CDO. 就是那个邮件主题那个地方不行,中文字全变成问号了. 邮件正文都没问题.
谢谢

#5


晕了
email.From = "系统管理员<system@system.com>"

#6


引用 5 楼 xxyj6450 的回复:
晕了
email.From = "系统管理员<system@system.com>"
还是不行,大侠意思是发邮件的邮箱后面加个"<>"重复一下,邮件标题就不会中文变问号吗?我这样写的:
--------------------------------
Set email = CreateObject("CDO.Message")
  email.From = "1@qq.com <1@qq.com>  "'发址
  email.To = "1111111111111111@qq.com" '收址
  email.Subject = "中文字符中文字符中文中文<system@system.com>"   '邮件主题
  email.TextBody = ""
---------------------------------
我试过这个是还是会变问号的.字符问题跟发件邮箱怎么写会有关系的?蛮奇怪的.
谢谢!!
 

#7


??????????????????

#8


是我理解错了.邮件标题一般由发件人及邮件主题组成.标题的发送人部分确实和From的格式有关.不按格式写,CDO就不能正确的对标题进行Base64编码.
subject部分和那个应该无关,你设计一下语言看看
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value=0x0804
email.Fields.Update

#9


引用 8 楼 xxyj6450 的回复:
是我理解错了.邮件标题一般由发件人及邮件主题组成.标题的发送人部分确实和From的格式有关.不按格式写,CDO就不能正确的对标题进行Base64编码.
subject部分和那个应该无关,你设计一下语言看看
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value……

谢谢!试了下,不成功.另外我发现其实正文也是会中文全部变问号的.不知道怎么解决.多谢!!
-----------------------------------
Set email = CreateObject("CDO.Message")
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value =  "0x0804"'这里要加引号吧?不加的时候vb会红色示错.email.fields.Update
  email.From = "1@qq.com"'发址
  email.To = "1111111111111111@qq.com" '收址
  email.Subject = "中文字符中文字符中文中文<system@system.com>" '邮件主题
  email.TextBody = "中文字符"
----------------------

#10


呀,出错了.email.fields.Update前面有个回车

#11


没用cdo发邮件,不过是用cdo编码、解码,没有出现你说的问题啊!

#12


该回复于2011-07-18 00:59:18被版主删除

#13


奇怪.我试了下干脆直接邮件正文那行代码email.TextBody = "中文字符"去掉,结果是:程序会自动把附件txt文件中的文字放成正文,而且是正常显示的.但是我的附件文件的文件名却又变成了一串问号.奇怪死了.

#14


应该是你电脑设置的问题

#1


没有遇到乱码问题呀,你的电脑设置里不是简体中文吗

#2


引用 1 楼 asftrhgjhkjlkttttttt 的回复:
没有遇到乱码问题呀,你的电脑设置里不是简体中文吗
不是编译器里乱码,是邮件发送我收到后它那个主题那个地方的中文字符全变成一堆问号了,比如这样了:??????  .挺奇怪的,正文里都正常.
应该跟电脑设置没关系的吧.
谢谢!!

#3


一定要在From后面再加上<任意邮箱地址>,比如这样:
objMail.From = "系统管理员<system@system.com>" 

#4


引用 3 楼 xxyj6450 的回复:
一定要在From后面再加上<任意邮箱地址>,比如这样:
objMail.From = "系统管理员<system@system.com>"

大侠这个我试了下,不行:
email.Subject = "中文字符中文中文<system@system.com>" 
而且objMail是什么?我用的是CDO. 就是那个邮件主题那个地方不行,中文字全变成问号了. 邮件正文都没问题.
谢谢

#5


晕了
email.From = "系统管理员<system@system.com>"

#6


引用 5 楼 xxyj6450 的回复:
晕了
email.From = "系统管理员<system@system.com>"
还是不行,大侠意思是发邮件的邮箱后面加个"<>"重复一下,邮件标题就不会中文变问号吗?我这样写的:
--------------------------------
Set email = CreateObject("CDO.Message")
  email.From = "1@qq.com <1@qq.com>  "'发址
  email.To = "1111111111111111@qq.com" '收址
  email.Subject = "中文字符中文字符中文中文<system@system.com>"   '邮件主题
  email.TextBody = ""
---------------------------------
我试过这个是还是会变问号的.字符问题跟发件邮箱怎么写会有关系的?蛮奇怪的.
谢谢!!
 

#7


??????????????????

#8


是我理解错了.邮件标题一般由发件人及邮件主题组成.标题的发送人部分确实和From的格式有关.不按格式写,CDO就不能正确的对标题进行Base64编码.
subject部分和那个应该无关,你设计一下语言看看
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value=0x0804
email.Fields.Update

#9


引用 8 楼 xxyj6450 的回复:
是我理解错了.邮件标题一般由发件人及邮件主题组成.标题的发送人部分确实和From的格式有关.不按格式写,CDO就不能正确的对标题进行Base64编码.
subject部分和那个应该无关,你设计一下语言看看
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value……

谢谢!试了下,不成功.另外我发现其实正文也是会中文全部变问号的.不知道怎么解决.多谢!!
-----------------------------------
Set email = CreateObject("CDO.Message")
email.Configuration.fields("http://schemas.microsoft.com/cdo/configuration/languagecode").Value =  "0x0804"'这里要加引号吧?不加的时候vb会红色示错.email.fields.Update
  email.From = "1@qq.com"'发址
  email.To = "1111111111111111@qq.com" '收址
  email.Subject = "中文字符中文字符中文中文<system@system.com>" '邮件主题
  email.TextBody = "中文字符"
----------------------

#10


呀,出错了.email.fields.Update前面有个回车

#11


没用cdo发邮件,不过是用cdo编码、解码,没有出现你说的问题啊!

#12


该回复于2011-07-18 00:59:18被版主删除

#13


奇怪.我试了下干脆直接邮件正文那行代码email.TextBody = "中文字符"去掉,结果是:程序会自动把附件txt文件中的文字放成正文,而且是正常显示的.但是我的附件文件的文件名却又变成了一串问号.奇怪死了.

#14


应该是你电脑设置的问题