pb jmail 死机-PB 使用JMAIL, timer事件 循环发送邮件 死机 哪位高手看下代码有啥问题?

问题描述

PB 使用JMAIL, timer事件 循环发送邮件 死机 哪位高手看下代码有啥问题?
开始使用Mymail.dll ,发送邮件(在timer事件写的发送,即发现有附件即触发发送函数) 一切正常,程序后台运行几周都没问题,后来看见网上说jmail.dll 比mymail.dll好用,就讲程序改用调jmail.dll后,自动执行2天 基本程序就死在那了,资源管理器发下,程序内存占用增长了不少,不知道什么原因 ,哪位高手给指点一下,谢谢

1、定义窗口级别 实例 OLE对象
oleobject lole-jmail
2、定义窗口open 事件creat
String ls_useridls_passwordls_sender
Long ll_net
lole_jmail = Create oleobject

ls_userid=uo_send_info.sle_user.text
ls_password=uo_send_info.sle_pass.text
ls_sender = uo_send_info.sle_sender.text

ll_net = lole_jmail.ConnectToNewObject(""Jmail.Message"")
If ll_net = 0 Then
lole_jmail.Charset=""gb2312""
lole_jmail.Encoding=""base64""//
lole_jmail.ContentTransferEncoding = ""base64""//
lole_jmail.ISOEncodeHeaders=true
lole_jmail.silent=true
lole_jmail.Logging=true
lole_jmail.From=ls_sender
lole_jmail.FromName=""有限公司""//ls_userid // 发件人姓名
lole_jmail.MailServerUserName=ls_sender
lole_jmail.MailServerPassword=ls_password // 发件邮箱用户密码
end if

3、在timer 事件 执行 发送函数

of_send(),该函数 5秒执行一次,程序运行2天 基本都死掉,估计问题在这里。。。

核心函数代码如下:
String ls_host
String ls_readyls_finishedls_isattachls_flagls_subjectls_bodyls_origpathls_origfilels_orig
String ls_recipientlsa_recipient[]
Long ll_cntijkll_net

gb_running = True
ll_cnt = dw_send.RowCount()
If ll_cnt<=0 Then
MessageBox(""系统提示""请先配置收件人地址!"")
Return -1
End If

ls_host=uo_send_info.sle_host.text
If IsValid(lole_jmail) Then
For i = 1 To ll_cnt
ls_ready = Trim(dw_send.GetItemString(iready""))
ls_finished = Trim(dw_send.GetItemString(ifinished""))
ls_isattach = Trim(dw_send.GetItemString(iisattach""))
ls_flag = Trim(dw_send.GetItemString(iflag""))
ls_recipient = Trim(dw_send.GetItemString(irecipient""))
ls_subject = Trim(dw_send.GetItemString(isubject""))
ls_body = Trim(dw_send.GetItemString(ibody""))
ls_origpath = Trim(dw_send.GetItemString(iorigpath""))
ls_origfile = Trim(dw_send.GetItemString(iorigfile""))
ls_orig = ls_origpath+ls_origfile

    If ls_flag = 'n' Then Continue;    If as_repeat = ""n""  Then        If ls_finished = 'y' Then Continue;    End If    If ls_ready = 'y' Then        gf_string2array(ls_recipient';'lsa_recipient[])        // 收件人        lole_jmail.ClearRecipients()        For j = 1 to upperbound(lsa_recipient[])            If pos(lsa_recipient[j]'@')>0 Then                lole_jmail.AddRecipient(lsa_recipient[j])            End If        Next        lole_jmail.Subject=ls_subject        lole_jmail.Priority=3    // 优先级        lole_jmail.Body=ls_body //邮件内容        // 附件           If ls_isattach = 'y' Then            For k = 1 to 1 //只有一个附件                //lole_jmail.addattachment(plb_attachment.text(i))                lole_jmail.ClearAttachments()                lole_jmail.addattachment(ls_orig)            Next        End If        If lole_jmail.Send(ls_host) Then            mle_1.text=Trim(mle_1.text)+""发送成功:      [""+ls_origfile + ""]:     ""+""~r~n""            gf_writelog(""发送成功:      [""+ls_origfile + ""]"")            If Not of_save_send_log(ls_origfilels_recipient) Then                mle_1.text=Trim(mle_1.text)+""保存log失败:       [""+ls_origfile + ""]:     ""+""~r~n""                gf_writelog(""保存log失败:       [""+ls_origfile + ""]"")            End If        Else            mle_1.text=Trim(mle_1.text)+""发送失败:      [""+ls_origfile + ""]:     ""+""~r~n""            gf_writelog(""发送失败:      [""+ls_origfile + ""]"")        End if    End IfNext

End If
gb_running = False
Return 1

时间: 2025-01-14 07:43:52

pb jmail 死机-PB 使用JMAIL, timer事件 循环发送邮件 死机 哪位高手看下代码有啥问题?的相关文章

虚拟机导致电脑死机-虚拟机开启后导致真实的电脑死机

问题描述 虚拟机开启后导致真实的电脑死机 电脑开了虚拟机之后,真实的电脑就死机!而且是每次一开,电脑必死的那种! 解决方案 主板驱动导致电脑死机故障 解决方案二: 要不电脑内存太小,要不虚拟机安装时占用的内存太大 解决方案三: 你电脑内存太小了,或者开的东西太多了 解决方案四: 建议减小虚拟机内存占用,按你电脑4g内存来说,你虚拟机如果是windows,开个2G好了,如果是linux一个g就很流畅了.还有虚拟机本身程序也占用内存,所以你本机内存只有1个多G可用了,你就不能开很多东西了,说了这么多

cc254x 蓝牙协议-通过CC2540作为从机,通过手机发送数据‘a’实现从机播放“收到”声音。

问题描述 通过CC2540作为从机,通过手机发送数据'a'实现从机播放"收到"声音. 现在是的问题是通过设置定时器1来完成,但是具体的声音"收到"的频率是怎么装载到定时器里面的,产生要的PWM波形.我的程序只能改变占空比,只是发出声音的高低,还有就是网上都是音乐的频率,没有说话的有没有取模软件把说话的声音频率算出来??求大神指导,#include #include ""bcomdef.h""#include "&qu

win7假死系类之硬盘原因造成的假死

本系统之家网站会在不定期更新win7系统假死系类,为什么会不定期更新,因为有些问题我们也不知道,需要有人像我们提问.或者小编刚刚好遇到看到之类的问题,才能找出方法解决问题,然后在网站上更新出文章告诉大家这个方法来帮大家解决问题. 1 硬盘原因造成的假死的现象: 开机的时候硬盘指示灯闪烁,有时候是硬盘指示灯不亮但是鼠标可以移动,一会后有可能硬盘指示灯就亮了.在打开复制文件的时候,经常会照成电脑卡机的现象,卡机的时间不一定,基本上跟你所处理的数据的大小有关 2 分析假死的原因: 这问题最关键的地方就

javascript-jsp 将本机作为服务器。让别人IP访问本机网页,js都执行不了

问题描述 jsp 将本机作为服务器.让别人IP访问本机网页,js都执行不了 求大神帮小弟解答一下. 解决方案 把你的js都放到body的下面 解决方案二: 浏览器开发者模式调试下,看看报什么错呢. 解决方案三: 访问是什么浏览器?这个不应该出现这种情况啊.这个应该是浏览器无法解析这段JS代码导致的吧!

android-Android 写事件监听 真机调试出现闪退(我是新手,刚学Android,求大神指教)

问题描述 Android 写事件监听 真机调试出现闪退(我是新手,刚学Android,求大神指教) 这是我的程序: ImageView imageView = (ImageView) findViewById(R.id.login_image); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 这是错误日志: 03-08 18:10:43

c#在一个窗口用timer事件怎么触发另一个窗口的enable属性

问题描述 c#在一个窗口用timer事件怎么触发另一个窗口的enable属性 form1窗口里 private void timer1_Tick(object sender, EventArgs e) { DateTime timeend = Convert.ToDateTime(textBox2.Text);//设置结束时间 textBox1.Text = dt.GetDateTimeFormats('M')[0].ToString();//设置当前时间 string timeday = Da

telnet-为什么使用telnt命令查看远程机的当前登录名显示的确是本机的当前登录名?

问题描述 为什么使用telnt命令查看远程机的当前登录名显示的确是本机的当前登录名? 比如我在本机A(A当前的登录用户名是"peter")访问目标机B(B当前的登录名是"test"),连接上后在A中远程登录框中输入echo %usename%,显示的结果是"peter". 当然我只在在B机中运行echo %username% 显示的是"test". 另外,我在A中远程登录框中输入dir,显示B的目录,这是正确的.我做这个的目的

azure- 虚机创建后,是否可以在设计虚机网络?

问题描述 虚机创建后,是否可以在设计虚机网络? 大家好!! 虚机创建后,是否可以在设计虚机网络? 谢谢 !!! 解决方案 可以的,相当于 你的物理机安装好了以后,再换一根网线

hibernate-单线程循环假死,纠结了一星期了,求指导

问题描述 单线程循环假死,纠结了一星期了,求指导 现在我正在维护一个派单系统,派单的业务逻辑是新起了一个线程,这个派单线程并没有 用到线程池之类的技术,就是一个很简单的new Thread().start(),然后有一个监听线程观察 该线程是否存活,如果不存活就重新再创建一个派单线程,但是现在有一个奇怪的问题,就是 运行大概一天左右,派单线程就会出现假死状态,但是通过ThreadDump发现该线程的状态 是Running,而每次派单线程都卡在一个Hibernate的get查询上,并且Thread