jmail

时间:2024-04-19 08:52:44编辑:揭秘君

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搞定

当然,以上只是一个样例,并非所有问题这是因此而起。
你可以查看是否是防火墙或防病毒或权限原因,如果不是那就比较麻烦了。


JMail到底怎么用啊?

jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站拥有发送邮件和接收邮件的功能。
实际应用
(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")


asp程序怎样使用jmail

<%
function SendMail(SMTPServer,SMTPServerUserName,SMTPServerPassword,MailDomain,MailtoAddress,MailtoName,Subject,MailBody,FromName,MailFrom,Priority)
    dim JMail, msg
    set JMail=Server.CreateObject("JMail.Message")
    JMail.Charset="gb2312" '编码
    JMail.silent=true '设置为true,JMail不会抛出例外错误.
    JMail.ContentType = "text/plain" '邮件正文格式
    'JMail.ServerAddress = SMTPServer '用来发送邮件的SMTP服务器(无效)
    '指定邮件服务器的地址。可以指定多个服务器,用分号点开。可以指定端口号。
    '如果serverAddress保持空白,JMail会尝试解决远程邮件服务器,然后直接发送到服务器上去。
    '如:JMail.ServerAddress = &tquo;mail.mydom.net; mail2.mydom.net:2500"
    JMail.MailServerUserName = SMTPServerUserName '登录用户名
    JMail.MailServerPassWord = SMTPServerPassword '登录密码
    JMail.MailDomain = MailDomain '域名(如果用“name@domain.com”这样的用户名登录时,请指明domain.com
    JMail.AddRecipient MailtoAddress,MailtoName '收信人
    JMail.Subject = Subject '主题
    JMail.Body = MailBody '邮件正文(纯文本格式)
    JMail.FromName = FromName '发信人姓名
    JMail.From = MailFrom '发信人Email
    JMail.Priority = Priority '邮件等级12345
    msg = JMail.Send(SMTPServer)
    JMail.Close
    set JMail = nothing
    SendMail = msg
end function
%>


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")
%>


自己理解不明白的问我


vb问题:jmail的使用!!

用Jmail
源码实例
先把Jmail下载安装了
在Jmail的安装目录下找到Jmail.dll把路径复制出来,例如我的是安装在c:\Jmail.dll(把他复制到c盘也行)
然后在开始菜单运行命令
注册Jmail:Regsvr32 c:\Jmail.dll
注册后vb 的 工程 里引用 Jmail(自己应该找得到)
然后写下代码,记得把你的正确邮箱账号密码也替换了
发邮件代码:
Option Explicit

Sub SendMail(Optional ByVal sSubject As String, _
Optional ByVal sBody As String, _
Optional ByVal sFileName As String)

Dim jmail
Set jmail = CreateObject("jmail.Message")
jmail.Charset = "gb2312"
jmail.Silent = False
jmail.Priority = 1 '邮件状态,1-5 1为最高
jmail.MailServerUserName = "fitgore" 'Email帐号
jmail.MailServerPassWord = "123456" 'Email密码

jmail.FromName = "邮件" '发信人姓名
jmail.From = "fitgore@163.com" '发邮件地址地址

jmail.Subject = "qq来信了" '主题
jmail.AddRecipient "fitgore@163.com" '收信人地址
jmail.Body = sBody '信件正文

jmail.Send ("smtp.qq.com")

Set jmail = Nothing
End Sub

Private Sub Command1_Click()
SendMail text1.text, text2.text, ""
MsgBox "OK"
End Sub

jmail不支持qq邮箱,你可以换成163的,163的测试可以,你重新复制试试


上一篇:风头一时无两

下一篇:google earth在线