JMail 接收邮件的问题
当你收到乱码邮件后,如果让对方重发一次,既浪费时间,又显得你“露怯”,不如通过尝试以下方法自行解码:
1.根本设置 对OutlookExpress进行根本设置,可彻底解决电子邮件的乱码。打开OutlookExpress后,选择“工具”→“选项”命令,单击“阅读”标签,再单击“字体”按钮,选择“简体中文(GB2312)”,同时把它设置为默认值。接下来,单击“国际设置”按钮,选中“为接收的所有的邮件使用默认的编码”,确定退出。如此设置后,当你打开所有邮件,通常都不会再出现乱码了。
2.选项查看 通常情况下,没有进行上述邮件设置,导致邮件乱码情况居多。在OutlookExpress中,选择乱码邮件后,单击“查看”→“编码”→“简体中文(GB2312)”或“其他”→“简体中文(HZ)”,邮件内容即可展现。
3.转寄再收 如仍显示乱码,可试着将乱码邮件转寄到自己的邮箱中,然后用OutlookExpress接收,有时即可顺利解码。
4.改名重读 仍然不行可将邮件改名,存成一个后缀名为.eml的文件,由OutlookExpress打开一般都可以自动解码。
5.追根溯源 对于采用不同编码标准产生的乱码邮件,解码工作比较专业,说起来会很生涩。我们不妨选择乱码邮件后,右键单击鼠标,在弹出的快捷菜单中选择“属性”命令,接着在出现的对话框中单击“详细资料”标签,再单击“邮件源文件”按钮,这时就会打开邮件源文件码,邮件内容显现。
6.巧妙骗解 如问题仍得不到解决,接上一步操作,右键单击,选“复制”,将“邮件源文件”拷贝到系统的剪贴板上,然后用记事本将其打开。在邮件信头中添加Mime-Version:1.0Content-Transfer-Encoding:quoted-printable,注意信头中间不要空行,信头和信体之间要有一个空行,保存为.txt纯文本文件。接下来用资源管理器将其改名为.uue为后缀的文件并运行,这时会自动调用WinZip并“骗取”它来对乱码邮件进行解码工作,进而正确显示编码邮件的“庐山真面目”。
7.代码替换 将乱码邮件存为一个.eml的文件,用记事本打开。然后打开一个正常邮件,选择并复制一呗代码:
Content-Type:text:/plain;
charset=“GB2312”
Content-Transfer-Encoding:quotedprintable
替换粘贴到乱码邮件的相应位置,保存后关闭邮件。这时乱码邮件变为正常邮件。
8.优化重组 很多的邮件编辑软件以字符为单位处理文本,双字节的汉字被删除一半后,剩余部分会和相邻的汉字重新组合,使得文本面目全非。我们收到的绝大多数邮件属于此类。判断这类邮件时,只要乱码内容有很多“=”号,即可肯定为QP编码的邮件。这时我们需要将乱码邮件存成一个文本文件,然后使用以字符为单位的编辑软件,将乱码行的第一个字符删除。笔者有一个很笨但十分有效的办法,就是将乱码连接起来,不管多长,发现内容之间有两个“=”号,去掉其中的一个多余“=”号,后面的部分就会和相邻的乱码重新组成可识别的汉字。如果以上方法均不能奏效,则可以判断收到的乱码邮件未经过编码造成第8位字节滤掉而成为无法还原的死乱码文档,只好请对方重发邮件给你了。参考资料:百度一下
jmail发邮件的问题
以下为网上搜索结果: 出现上述错误还可能有如下可能性
1.防火墙阻止了网络通讯或网络故障
2.杀毒软件限制
3.jmail组件权限不够
4.邮件服务器故障
以下是引用片段:
这个过程就是ASP程序代码调用了JMAIL组件,把要发送的邮件的各种信息通过JMAIL组件发给了MAIL SERVER(邮件服务器,或者说是邮件服务程序,如MDeamon,IMAIL,WinWebMail等),真正向你的目的地发送邮件的是MAIL SERVER.
通常我们遇到的错误是:’The message was undeliverable. All servers failed to receive the message ’,这其实是JMAIL返回的错误,并不是ASP代码产生的,根本原因是MAIL SERVER拒绝了JMAIL的请求.
究其原因,是那些服务器不提供SMTP服务或者没有开启smtp服务;或是在服务器端开启了’禁止邮件中继服务’选项,也就是说不在其允许的IP段或指定范围内的空间里的程序是无法使用其SMTP服务的,最终导致’8000ffff’错误发生。 服务器端需要身份验证时,必须严格填写发件人地址,帐户和密码,以下为邮件服务器需要身份验证时的jmail发送邮件的参考代码: dim mail
set mail=CreateObject("jmail.Message")
mail.Charset ="gb2312"
mail.ContentType = "text/html"
mail.From = "mts@0e2.net" '发件人真实邮件地址
mail.FromName = "密陀僧" '发件人名称
mail.AddRecipient "admin@0e2.net" '收件人地址
mail.MailServerUserName = "mts@0e2.net" '发件人帐号
mail.MailServerPassWord = "123456" '密码
mail.subject="test"
mail.body= "test"
On Error Resume Next
mail.Send("mail.0e2.net")
mail.close()
set mail=nothing
err.clear
检查了JMAIL组件权限,发现没的问题。
按照惯例来检查。JMAIL组件发送邮件需要使用25端口.
查服务器防火墙 发现禁止25
打开。
也有可能在TCP/IP策略里禁止25端口的,请注意
补充部分:
导致这个问题的可能性还有以下几点。
收信邮箱填写错误,这个主要是在群发时候发现比较麻烦。
可以加个容错语句在里面就解决。
On Error Resume Next
还有可能就是使用的信箱问题。若以上两点都没什么问题,最好更改下发信邮箱
SMTP服务器测试下看,能否解决。
先关闭防火墙,问题依旧
再尝试关闭防病毒系统Mcafee VirusScan Enterprise V8.0i,这次终于正常了,但关闭防病毒系统也不是个办法啊。
继续排除问题,在访问保护中发现“禁止大量发送邮件的蠕虫病毒发送邮件”这一项,测试确定是因为这个端口阻拦在作怪。
解决方法:
控制台→访问保护→禁止大量发送邮件的蠕虫病毒发送邮件→已排除进程→加入w3wp.exe搞定
当然,以上只是一个样例,并非所有问题这是因此而起。
你可以查看是否是防火墙或防病毒或权限原因,如果不是那就比较麻烦了。
ASP用JMAIL发邮件显示成功但是却收不到邮件
<%
cname=request.Form("name")
cemail="ww22@163.com"
emailtitle="报名表"
age=request.Form("age")
bmemail=request.Form("email")
phone=request.Form("phone")
addr=request.Form("addr")
emailcontant=request.Form("content")
Set JMail = Server.CreateObject("JMail.Message")
'是否将信头编码成iso-8859-1字符集. 缺省是True
JMail.ISOEncodeHeaders = True
'如果JMail.silent设置为true,ErrorCode包含的是错误代码
JMail.Silent = True
'设置标题和内容编码,如果标题有中文,必须设定编码为gb2312
JMail.Charset = "gb2312"
'JMail.ContentType = "text/html" '如果发内嵌附件一定要注释掉这行,重要!
JMail.From = "wwe2n0@163.com" ' 发送者地址
JMail.FromName = "报名单" ' 发送者姓名
JMail.MailServerUserName = "wwe2n0" ' 身份验证的用户名
JMail.MailServerPassword = "zhongguo" ' 身份验证的密码
'加入新的收件人
JMail.AddRecipient cemail, cname
'JMail.AddRecipientBCC Email '密件收件人的地址
'JMail.AddRecipientCC Email '邮件抄送者的地址
JMail.Subject = emailtitle
JMail.Body = emailcontant
'增加一个普通附件
'JMail.AddAttachment(Server.MapPath())
'增加一个嵌入式附件
' The return value of AddAttachment is used as a
' reference to the image in the HTMLBody.
'contentId = JMail.AddAttachment(Server.MapPath("images/email.gif"))
'只有HTML格式支持嵌入图片附件,我们采用HTML格式的邮件内容
' As only HTML formatted emails can contain inline images
' we use HTMLBody and appendHTML
JMail.HTMLBody = "fdasfdsfadsfasf"
'如果对方信箱不支持HTML格式邮件,我们仍需要给他一个友善的提示
' But as not all mailreaders are capable of showing HTML emails
' we will also add a standard text body
JMail.Body = "Too bad you can't read HTML-mail."
JMail.appendText " "
if JMail.Send( "smtp.163.com" ) then '执行邮件发送(通过邮件服务器地址)smtp.域名.com 不一定是邮件服务器
response.Write("邮件发送成功")
else
response.Write("邮件发送失败")
end if
JMail.Close()
Set JMail = Nothing
response.Redirect("index.asp")
%>
自己理解不明白的问我