jmail问题,高分求解(低手免进)

qb_zhm 2001-07-21 08:59:42
jmail收下来的附件总是乱码,有哪位大侠有好的办法吗?我用的版本是4.1,文本文件不会乱码,但如果是图片,word文件等总是乱码,哪位高手帮小弟一把,解决问题一定给分。
...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Basin 2001-08-22
  • 打赏
  • 举报
回复
刚刚在我的帖子里看到了你说的问题,现解答如下!
用JMAIL本身带的存储附件的函数,是肯定不灵的啦,收下来的WORD,EXEL。。等等附件多半都是乱码,所以你没有必要花心思去研究JMAIL本身的函数怎么去用。我是用自己写的一个函数来提取邮件格式的。总的思路是把头信息和邮件体信息分开,邮件体信息又包含了正文和附件信息,通过解码函数(附件一般都是BASE64的)解码,然后在储存在本地!

关于以上我提到的解邮件格式的函数以及解码函数在网上都能够找到的,去搜索引擎去搜吧,因为我自己写的这个目前还有一些问题,所以就不献丑了 :)

Good Luck!!!
qb_zhm 2001-07-24
  • 打赏
  • 举报
回复
此题无解?还是实在没高手?
zken 2001-07-23
  • 打赏
  • 举报
回复
关注
liugys 2001-07-23
  • 打赏
  • 举报
回复
有分啊?给我来点:P
neweb 2001-07-23
  • 打赏
  • 举报
回复
Attachment.ContentType 你是怎么设的?
qb_zhm 2001-07-23
  • 打赏
  • 举报
回复
当然是不行,大哥,我说过了是接收,不是发送,而且是附件,附件是和 Charset没关系的,这些资料网上遍地都是,这只是 jmail.message的资料,jamil还有
Dim mail1 As jmail.Attachment
Dim mail1 As jmail.Attachments
Dim mail1 As jmail.Headers
Dim mail1 As jmail.MailMerge
Dim mail1 As jmail.message
Dim mail1 As jmail.Messages
Dim mail1 As jmail.PGPDecodeResult
Dim mail1 As jmail.PGPDecodeResults
Dim mail1 As jmail.PGPDecodeResultCollection
Dim mail1 As jmail.PGPDecodeResults
Dim mail1 As jmail.PGPKeyInfo
Dim mail1 As jmail.POP3
Dim mail1 As jmail.POP3Mail
Dim mail1 As jmail.Recipient
Dim mail1 As jmail.Recipients
Dim mail1 As jmail.SMTPMail
Dim mail1 As jmail.SpeedMailer

不过还是谢谢你的好意。有高手帮我解决问题了,我再加130分,共260分,这个贴子不能有这么多分,我会再开一贴子送分,有没有人想要啊?
tonnycncn 2001-07-23
  • 打赏
  • 举报
回复
转载:
只要设置jmail.charset="gb2312"试试看
这里还有jmail的说明
Jmail 参考说明

Body : String
(v3.0)
信件体,正文,使用AppendText追加内容
如:JMail.Body = "Hello world"

Charset : String
(v3.0)
字符集,缺省为"US-ASCII"
如:JMail.Charset = "US-ASCII"

ContentTransferEncoding : String
(v3.0)
指定内容传送时的编码方式,缺省是"Quoted-Printable"
如:JMail.ContentTransferEncoding = "base64"

ContentType : String
(v3.0)
信件的contentype. 缺省是"text/plain",但是可以设置为其他你想要的类型.
如果你以HTML格式发送邮件, 改为"text/html"即可。
如:JMail.ContentType = "text/html"

DeferredDelivery : Date
(v3.0)
设置延期发送. 如果邮件服务器支持的话,消息到了这个时间才会发送
如:(Javascript)JMail.DeferredDelivery = new Date( 2000,
02,17 ).getVarDate();

Encoding : String
(v3.0)
这个属性可以用来改变附件编码方式(缺省是"base64). 可以选择使
用的是"base64", "uuencode" or "quoted-printable"
如:JMail.Encoding = "base64"

ErrorCode : Integer
(v3.0)
如果JMail.silent设置为true,ErrorCode包含的是错误代码
如:Response.Write( JMail.ErrorCode );

ErrorMessage : String
(v3.0)
如果JMail.silent设置为true,包含的是错误信息
如:Response.Write( JMail.ErrorMessage );

ErrorSource : String
(v3.0)
Contains the error source if JMail.silent is set to true
如:Response.Write( JMail.ErrorSource );

ISOEncodeHeaders : Boolean
(v3.0)
是否将信头编码成iso-8859-1字符集. 缺省是true
如:JMail.ISOEncodeHeaders = false

Lazysend : Boolean
(v3.0)
这个属性指定Jmail是否一直等到mail发送了然后返回,或者缓冲这条消息然后
在后台发送。
然而设置了这个属性,你就不能控制错误信息。
注意:如果选择了这个选项,属性ServerAddress将无效,lazysend将通过dsn
查询决定邮件服务器,
在一些设置里面,这可能有问题。
如:JMail.LazySend = true;

Log : String
(v3.0)
Jmail创建的日志,如果loging属性设置为true
如:Response.Write( JMail.Log );

Logging : Boolean
(v3.0)
是否使用日志
如:JMail.Logging = true

MailDomain : String
(v3.0)
This can be used to override the EHLO/HELO statement to your mailserver
如:JMail.Maildomain = "hello.world.com"

MimeVersion : String
(v3.0)
指定mime版本。缺省是"1.0"
如:JMail.MimeVersion = "1.0"

Priority : Integer
(v3.0)
优先级. 范围在1-5之间
1 高优先级. 有些邮件程序称之为紧急
2 也是高优先级
3 普通优先级
4 低优先级
5 最低的优先级
如:JMail.Priority = 3

Recipients : String
(v3.0)
只读属性,返回所有收件人
如:Response.Write( "" + JMail.Recipients + "" );

ReplyTo : String
(v3.0)
指定一个可选的回信地址
如:JMail.ReplyTo = "president@dimac.net"

ReturnReceipt : Boolean
(v3.0)
指定是否发件人需要一个回复收据. 缺省是false
如:JMail.ReturnReceipt = true

Sender : String
(v3.0)
指定发件人的邮件地址
如:JMail.Sender = "batman@dimac.net"

SenderName : String
(v3.0)
指定发件人的姓名
如:JMail.SenderName = "Bat man"

ServerAddress : String
(v3.0)
指定邮件服务器的地址。可以指定多个服务器,用分号点开。可以指定端口号。
如果serverAddress保持空白,JMail会尝试解决远程邮件服务器,然后直接
发送到服务器上去。
如:JMail.ServerAddress = "mail.mydom.net; mail2.mydom.net:2500"

Silent : Boolean
(v3.0)
如果设置为true,JMail不会抛出例外错误. JMail.execute() 会根据操作结
果返回true或false
如:JMail.silent = true

SimpleLayout : Boolean
(v3.0)
设置为true,减少Jmail产生的header信头
如:JMail.SimpleLayout = true

Subject : String
(v3.0)
设定消息的标题
如:JMail.Subject = "Dimac rocks big time!"

UsePipelining : Boolean
(v3.0)
Overrides if JMail should use pipelining on a server that supports it.
如:JMail.Pipelining = false

AddAttachment( FileName, [ContentType] )
(v3.0)
添加文件附件到信件
如:JMail.AddAttachment( "c:\\autoexec.bat" );

AddCustomAttachment( FileName, Data )
(v3.0)
添加自定义附件. This can be used to attach "virtual files" like
a generated text string or certificate etc.
如:JMail.AddCustomAttachment( "readme.txt", "Contents of file" );

AddHeader( XHeader, Value )
(v3.0)
添加用户定义的X-header到message
如:JMail.AddHeader( "Originating-IP","193.15.14.623" );

AddNativeHeader( Header, Value )
(v3.0)
添加信头
如:JMail.AddNativeHeader( "MTA-Settings", "route" );

AddRecipient( Email )
(v3.0)
增加收件人
如:JMail.AddRecipient( "info@dimac.net" );

AddRecipientBCC( Email )
(v3.0)
增加密件收件人
如:JMail.AddRecipientBCC( "someone@somedomain.net" );

AddRecipientCC( Email )
(v3.0)
增加抄送收件人
如:JMail.AddRecipientCC( "someone@somedomain.net" );

AddRecipientEx( Email, Name )
(v3.0)
增加一个带名字的收件人
如:JMail.AddRecipientEx( "info@dimac.net", "Dimac INFO" );

AddURLAttachment( bstrURL, bstrAttachAs, [bstrAuth] )
(v3.0)
下载并添加一个来自url的附件. 第二个参数"AttachAs", 被用来指定信件
收到后的文件名. 第3个可选参数是用来可选的WWW-鉴定.
如:JMail.AddURLAttachment
( "http://download.dimac.net/jmail/jmail.exe", "jmail.exe" )

AppendBodyFromFile( FileName )
(v3.0)
将一个文件内容追加到正文后
如:JMail.AppendBodyFromFile( "c:\\mytext.txt" );

AppendText( Text )
(v3.0)
追加信件的正文内容
如:JMail.AppendText( "Text appended to message Body" );

ClearAttachments()
(v3.0)
清除附件列表
如:JMail.ClearAttachments();

ClearCustomHeaders()
(v3.0)
清除所有自定义的信头
如:JMail.ClearCustomHeaders();

ClearRecipients()
(v3.0)
清除收件人列表
如:JMail.ClearRecipients();

Close()
(v3.0)
强制JMail关闭缓冲的与邮件服务器的连接
如:JMail.Close();

Execute() : Boolean
(v3.0)
执行邮件的发送
如:JMail.Execute();

ExtractEmailAddressesFromURL( bstrURL, [bstrAuth] )
(v3.0)
从一个url下载和添加email地址
如:JMail.ExtractEmailAddressesFromURL
( "http://duplo.org/generateEmailList.asp" );

GetMessageBodyFromURL( bstrURL, [bstrAuth] )
(v3.0)
清除message的正文,并用url的内容替换。Contenttype 会自动设置成UR
l的contentyp。第二参数(login and password)是可选的。
如:JMail.GetMessageBodyFromURL( "http://duplo.org/", "login:password" )

LogCustomMessage( Message )
(v3.0)
将用户自定义消息加入JMail日志. 只有属性loging设置为true时,
这项功能才能起作用
如:JMail.LogCustomMessage( "Hello world" );

dpcdpc 2001-07-23
  • 打赏
  • 举报
回复
前一段时间,我刚遇到过同样的问题。至今没有解决!如果问题解决了,别忘了通知一声,谢谢了。
除了附件不对,JMail各方面都不错,哎可惜。
还用了很多其他的组件,没有一个好用的。用过CmailServer,只能连到自己的pop3(CmailServer本身就有SMTP和POP3服务),用过RobustPOP3,附件保存到是对了,不支持中文文件名!!!......,用了好多好多,都不行。
本人Email:dbche263.net,谢谢.
zken 2001-07-23
  • 打赏
  • 举报
回复
关注,我也要用jmail,如果真有问题的话,兄弟我就换别的了,有什么好的建议吗?
wildwu 2001-07-23
  • 打赏
  • 举报
回复
同感,jmail发还行,收可不太好,只能用头痛来形容。
qb_zhm 2001-07-23
  • 打赏
  • 举报
回复
大哥,Attachment.ContentType 是只读属性,我是收邮件,不是发邮件,比如我的附件是 jpg的,Attachment.ContentType就为 "image/pjpeg",我单步执行看过。关键是邮件刚打开,attachment.Size就不对,比如,我发了 50K的文件,收到只有大约 40K的。
我想可能是 jmail的巨大的 bug,因为,我也看到有人问和我一样的问题,有人说安装 jmail4.2就行了,我刚去下载装上了,问题依旧。还有别的方法了吗?难道一定要我换组件?
乱码 2001-07-22
  • 打赏
  • 举报
回复
乱码不好吗?
jmail  jmail是一种服务器端的邮件发送组件,和个人用的客户端邮件软件不一样的。jmail是在服务器上给程序用来发邮件用的,除了软件编程人员,其他人一般平常用不上。   jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站拥有发送邮件既接收邮件的功能   与此相同的还有CDONTS.NewMail,Persits.MailSender,IISmail.Iismail等等,他们唯一区别就是jmail只需要注册一个dll组件即可被调用,而其他则需要在iis上设置发布smtp服务器   (1)Body(信件正文) : 字符串   如:JMail.Body = "这里可以是用户填写的表单内容,可以取自Form。"   (2)Charset(字符集,缺省为"US-ASCII") : 字符串   如:JMail.Charset = "US-ASCII"   (3)ContentTransferEncoding : 字符串   指定内容传送时的编码方式,缺省是"Quoted-Printable"   如:JMail.ContentTransferEncoding = "base64"   (4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串   如果你以HTML格式发送邮件, 改为"text/html"即可。   如:JMail.ContentType = "text/html"   (5)Encoding : 字符串   设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable" 如:JMail.Encoding = "base64"   (6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串   如:使用Response.Write( JMail.Log )语句列出日志信息。   (7)Logging(是否使用日志) : 布尔型   如:JMail.Logging = true   (8)Recipients : 字符串   只读属性,返回所有收件人   如:Response.Write( "" + JMail.Recipients + "" );   (9)ReplyTo(指定别的回信地址) : 字符串   如:JMail.ReplyTo = "qiao198@hotmail.com"   (10)Sender( 发件人的邮件地址) : 字符串   如:JMail.Sender = "qiao198@21cn.com"   (11)SenderName(发件人的姓名) : 字符串   如:JMail.SenderName = "一克"   (12)ServerAddress(邮件服务器的地址) : 字符串   你可以指定多个服务器,用分号点开。可以指定端口号。   如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。   如:JMail.ServerAddress = "mail.21cn.net.cn"   (13)Subject(设定邮件的标题,可以取自Form。):字符串   如:JMail.Subject = "客户反馈表单"   (14)添加文件附件到邮件   如:JMail.AddAttachment( "c:anyfile.zip" )   (15)AddCustomAttachment( FileName, Data )   添加自定义附件.   如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );   (16)AddHeader( Header, Value )   添加用户定义的信件标头。   如:JMail.AddHeader( "Originating-IP","192.158.1.10" );   (17)AddRecipient(收件人):字符串   如:JMail.AddRecipient( "qiao198@hotmail.com" );   (18)AddRecipientBCC( Email ),密件收件人:   如:JMail.AddRecipientBCC( "qiao198@hotmail.com" );   (19)AddRecipientCC( Email ) ,抄送收件人:   如:JMail.AddRecipientCC( "" )   (20)AddURLAttachment( URL, 文档名)   下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。   如:JMail.AddURLAttachment( "http://www.chinabs.net/jmail.zip", "jmail" )   (21)AppendBodyFromFile( 文件名) ,将文件作为信件正文:   如:JMail.AppendBodyFromFile( "c:anyfile.txt" )   (22)AppendText( Text )   追加信件的正文内容,比如增加问候语或者其它信息。   如:JMail.AppendText( "欢迎访问本站!" )   (23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接:   如:JMail.Close()   (24)发送【调用格式:objJMail.Send(SMTPServerAddress[:Port])】   例:JMail.Send("smtp.163.com")   Jmail具有以下特点:   (1)可以发送附件;   (2)详细日志能力,便于你查看问题所在;   (3)设置邮件发送的优先级;   (4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。   (5)密件发送/(CC)抄送/紧急信件发送能力;   (6)最关键的就是--免费的组件,不必花钱,所以非常值得使用。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧