+ -
当前位置:首页 → 问答吧 → 求救:swfkit实现发邮件难题。1中文乱码,2弹出对话框说脚本导致速度降低,怎办?

求救:swfkit实现发邮件难题。1中文乱码,2弹出对话框说脚本导致速度降低,怎办?

时间:2008-12-16

来源:互联网

今天弄了个swfkit 发邮件功能,代码如下:
-------------------------------------
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

1.这个和swfkit本身对中文支持不好有关系的,我试过添加图片附件,可以成功发送的。我的发送邮箱是163的,接受邮箱是hotMail的
2.因为发送的时候,是很占资源的,它是调用了底层的一些程序发送的邮件,所以我测试的时候即是是一个空的flash场景,也会响应一段时间,场景就一个发送按钮 如果你不需要那个弹出对话框的话,你可以在flash发布设置了,把默认的脚本限制时间15秒改大一些。
不晓得AS3.0的有没有优化一些我家里的swfkit只支持AS2.0的,明天去公司替你测试下

作者: libins   发布时间: 2008-12-16

版主谢谢你,不过我用的不是 as3.0....
限制时间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

sender.onSend = function (type, msg)
{
    trace(msg);
}
sender.send(mail);

作者: libins   发布时间: 2008-12-17

可以定义个弹出信息窗口
var dl = Dialogs
然后可以dl.msgBox输出提示信息,方便自己调试,这个功能类似于trace

作者: libins   发布时间: 2008-12-17

终于找到了 不会弹出说 adobe flash player 慢的对话框!!! 的方法了 , 5555   T.T

方法就是把发邮件的代码程序,写到 swfKit 软件里面的 代码窗里面。
可能经过这样,代码的执行就由打包后的exe外壳程序负责解析处理吧,搞不懂了。呵呵
发邮件速度好像还更快,更稳定呢,哈哈  赞一个。

作者: lostfire98   发布时间: 2008-12-17

不过,中文字符乱码的问题,现在是没治的了。不晓得有什么办法

作者: lostfire98   发布时间: 2008-12-17

你可以去官网看看,应该不可以解决中文的问题。。他们有在线的帮助论坛

作者: libins   发布时间: 2008-12-17

mail.subject="=?UTF-8?B?"+title;
mail.text=nr;
这样内容就不会乱码了,但是标题还是会乱码.

作者: oywj555   发布时间: 2010-10-16

热门下载

更多