求救:swfkit实现发邮件难题。1中文乱码,2弹出对话框说脚本导致速度降低,怎办?
时间:2008-12-16
来源:互联网
-------------------------------------
import SWFKit.*;
System.useCodepage=true; //防止读取的中文乱码,无效
var mail = new Mail;
mail.from = "[email protected]"; //发邮件的用户,注意,请使用支持pop、smtp的邮箱,早期的163免费邮箱可以,新注册那些发不出的。
mail.to = "[email protected];[email protected]"; //收文件的用户,可多个
mail.subject = "test中文字!";
mail.text = "Hello, flash send email by SWFKit!";
mail.date = (new Date).toString();
mail.addAttachment("d:\\test.jpg"); //附件文件
function onSendIt(type, msg){
_root.strace("type is: " + type + " " + msg);
if (!SWFKit.Global.processMsg()){
return false;
}else{ //如果发送成功
return true;
}
}
var sm = new SendMail;
sm.server = "smtp.163.com";
sm.port = 25;
sm.username = "xxxx"; //发邮件的用户名
sm.password = "xxxxxxxx"; //你邮箱的密码
sm.setEventHandler("onSend", onSendIt);
btn1.onRelease=function(){
sm.send(mail); //执行发邮件
}
-------------------------------------
1。难题之一:
经过测试,可以实现发邮件,但如果邮件内容还有中文字的话,接收方 [email protected] 能收到邮件,但中文会变乱码,而 [email protected] 收不到邮件或收到的是乱码邮件。两种情况的附件都可能成为一堆乱码。加上 System.useCodepage=true; 防止读取的中文乱码是没用的
2.难题之二:
用上面的代码经过 swfkit 打包生成exe执行发送邮件,如果有附件,会使动画停顿一段时间,这本来没什么。但是如果exe的动画本身较复杂,在发送过程中,会弹出对话框说“影片中的某个脚本导致 Adobe Flash Player 9 速度降低。如果继续运行,电脑将有一段时间停止响应。是否要终止此脚本?” 如果选仍然否,邮件将被发出,发出之后动画会一切正常。如果选是,动画的一些内容会继续播放,但动画里的其他内容按钮不再能触发了。相当于半死掉了。另外,如果用一个非常简单的动画里面嵌入发邮件功能,一样的代码,发的时候虽然会卡一阵,但是不会弹出这样的提示对话框。
请教高手,有什么招能解决问题呢,就是不要乱码,不要弹对话框,怎么办呀!
[ 本帖最后由 lostfire98 于 2008-12-16 16:13 编辑 ]
作者: lostfire98 发布时间: 2008-12-16
2.因为发送的时候,是很占资源的,它是调用了底层的一些程序发送的邮件,所以我测试的时候即是是一个空的flash场景,也会响应一段时间,场景就一个发送按钮

不晓得AS3.0的有没有优化一些我家里的swfkit只支持AS2.0的,明天去公司替你测试下
作者: libins 发布时间: 2008-12-16
限制时间15秒 或许这个有点帮助,不过,发布设置里没有这个东西呀....我的是flash8呃,是不是这个版本没有的设?
有没有办法能屏蔽不要弹出那个说 adobe flash player 慢的对话框呢?我试过在发布设置把“显示警告信息”前面的勾去掉,发邮件时对话框还是会弹出来。
[ 本帖最后由 lostfire98 于 2008-12-17 16:53 编辑 ]
作者: lostfire98 发布时间: 2008-12-17
我搞不懂这个 onSendIt() 有什么用,我发现改成下面:
function onSendIt(type, msg){
_root.strace("type is: " + type + " " + msg);
if (!SWFKit.Global.processMsg()){
return false;
}else{ //如果发送成功
mymc.gotoAndPlay(2); //我发现邮件没有发送完毕,这里就执行了,那我怎么判断邮件发送完毕了没有呢?
return true;
}
}
作者: lostfire98 发布时间: 2008-12-17
{
trace(msg);
}
sender.send(mail);
作者: libins 发布时间: 2008-12-17
var dl = Dialogs
然后可以dl.msgBox输出提示信息,方便自己调试,这个功能类似于trace
作者: libins 发布时间: 2008-12-17
方法就是把发邮件的代码程序,写到 swfKit 软件里面的 代码窗里面。
可能经过这样,代码的执行就由打包后的exe外壳程序负责解析处理吧,搞不懂了。呵呵
发邮件速度好像还更快,更稳定呢,哈哈 赞一个。
作者: lostfire98 发布时间: 2008-12-17
作者: lostfire98 发布时间: 2008-12-17
作者: libins 发布时间: 2008-12-17
mail.text=nr;
这样内容就不会乱码了,但是标题还是会乱码.
作者: oywj555 发布时间: 2010-10-16
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28