首页技术jmail(jmail使用)

jmail(jmail使用)

编程之家2024-02-01110次浏览

一、JMail 接收邮件的问题

当你收到乱码邮件后,如果让对方重发一次,既浪费时间,又显得你“露怯”,不如通过尝试以下方法自行解码:

jmail(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并“骗取”它来对乱码邮件进行解码工作,进而正确显示编码邮件的“庐山真面目”。

jmail(jmail使用)

7.代码替换将乱码邮件存为一个.eml的文件,用记事本打开。然后打开一个正常邮件,选择并复制一呗代码:

Content-Type:text:/plain;

charset=“GB2312”

Content-Transfer-Encoding:quotedprintable

替换粘贴到乱码邮件的相应位置,保存后关闭邮件。这时乱码邮件变为正常邮件。

8.优化重组很多的邮件编辑软件以字符为单位处理文本,双字节的汉字被删除一半后,剩余部分会和相邻的汉字重新组合,使得文本面目全非。我们收到的绝大多数邮件属于此类。判断这类邮件时,只要乱码内容有很多“=”号,即可肯定为QP编码的邮件。这时我们需要将乱码邮件存成一个文本文件,然后使用以字符为单位的编辑软件,将乱码行的第一个字符删除。笔者有一个很笨但十分有效的办法,就是将乱码连接起来,不管多长,发现内容之间有两个“=”号,去掉其中的一个多余“=”号,后面的部分就会和相邻的乱码重新组成可识别的汉字。如果以上方法均不能奏效,则可以判断收到的乱码邮件未经过编码造成第8位字节滤掉而成为无法还原的死乱码文档,只好请对方重发邮件给你了。参考资料:百度一下

jmail(jmail使用)

二、JMail的使用方法

1.首先下载jmail控件,然后安装(其实不安装也行,只要你能找到jmail.dll文件,然后注册该dll文件。这里不支持上传附件,否则我就把我下载的传上来了)。

附上手工注册它的批处理:

echo off

copy jmail.dll C:/windows/system32

regsvr32 jmail.dll

echo执行完毕!

pause

2.使用tlbimp c:/Program Files/Dimac/w3JMail4/jmail.dll/out:myJmail.dll/namespace:myJmail生成myJmail.dll后,copy到web的根目录的bin目录。

在ASP.Net页面中,用using myjmail;方法引用,例程如下:

protected void Page_Load(object sender, EventArgs e)

{

myjmail.Message jmail= new myjmail.Message();

DateTime t=DateTime.Now;

string subject="jmail test from web";

string body="<center>jmail test from web<br>test</center>";//tbContent.Text.Replace("/n","<br>");

string fromemail="xxxx@e165.com";

string toEmail="xxxx@e165.com";

//silent属性:如果设置为true,jmail不会抛出例外错误. jmail. send(()会根据操作结果返回true或false

jmail.Silent= true;

//jmail创建的日志,前提loging属性设置为true

//jmail.Logging=true;

//字符集,缺省为"us-ascii"

jmail.Charset="gb2312";

//信件的contentype.缺省是"text/plain"):字符串如果你以html格式发送邮件,改为"text/html"即可。

jmail.ContentType="text/html";

//添加收件人

jmail.AddRecipient(toEmail,"","");

jmail.From= fromemail;

//发件人邮件用户名

jmail.MailServerUserName="xxxx";

//发件人邮件密码

jmail.MailServerPassWord="xxxx";

//设置邮件标题

jmail.Subject=subject;

//邮件添加附件,(多附件的话,可以再加一条jmail.addattachment("c://test.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的 jmail.contenttype="text/html";删掉。否则会在邮件里出现乱码。

//jmail.addattachment("c://test.jpg",true,null);

//邮件内容

jmail.Body=body;

//jmail发送的方法

if(jmail.Send("smtp.e165.com",false))

lbResult.Text="已成功发送邮件。";

else

lbResult.Text="发送邮件失败!!!";

jmail.Close();

}

三、jmail组件的安装方法

你把jmail安装到windows系统的system32目录,这样你的软件放在任何文件夹都可正常运行了。组件这种东西本身就是为了共享才做出来的,安装一套,所有需要使用jmail服务的软件均可使用,如果每个软件都把它装到自己所在的文件夹,不但是对系统资源的浪费,而且这些软件同时运行的话还会互相冲突。打个比方,每个家庭为了用电都去建个小型发电厂,这现实吗?不如共同建个大型发电厂,大家共享使用,是吧?

另外你也最好打消把jmail集成到自己程序中的想法(虽然可以实现),这涉及版权问题。正版的jmail组件是要收费的,当然我知道你用的是破解版的,但作为软件开发者(或未来的软件开发者),我们也应该关注版权问题,这也是为我们自己将来的利益考虑。

你可以把自己的软件安装包和jmail的安装程序一起复制到其他电脑,在安装自己的软件后再安装jamil(要安装到system32目录中),这虽然麻烦些,但也不算难事。另外也可以把jmail安装程序作为插件集成到自己软件的安装包中(这个是允许的,只要你不去修改jmail本身及其附件。这也是目前很多软件安装程序的做法),在安装自己软件的时候自动提示安装jmail。

服务器功率(服务器电源功率怎么算)硬盘低格(解救你的硬盘!WD硬盘低格工具使用指南)