起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 刺青

【结贴】[请求]代码发邮件

[复制链接]
 楼主| 发表于 2009-12-10 11:00:41 | 显示全部楼层
我等待了好几分钟了,还是一样,有时候,第一次都发送不成功,不知道为什么。
回复 支持 反对

使用道具 举报

发表于 2009-12-10 11:07:06 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=29211 此帖子的15楼的代码是可以正常使用的,我测试过的。是否你的邮箱相关的属性设置的不正确。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-10 11:21:01 | 显示全部楼层
应该不是邮箱属性没正确吧?如果是设置不正确,应该一次都发送不成功才对,我有时候得,有时候不得。

另外,贴中15楼的代码中,lFrm : TZZFSYJ;这个是什么?
回复 支持 反对

使用道具 举报

发表于 2009-12-10 11:25:39 | 显示全部楼层
lFrm : TZZFSYJ 是一个窗体,可以去掉它。
你9楼的代码少了一些吧,对比那个链接中的代码来吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-10 16:01:07 | 显示全部楼层
zfang 我按你的链接改了之后,邮件就可以发出去了。也终于发现问题在哪里了,9楼的代码中,当执行到了dialogs.showmessage('邮件发送成功!');这句的时候,其实邮件还没发送成功的,这时如果点击确定,就会把这些    lMessage.Free;
    MailSystem.Free;
    SendMailExchang.Free都释放了,所以邮件发送不成功。只要把dialogs.showmessage('邮件发送成功!');这句给注释掉,点了发送后,等一下就可以再邮箱里看到了。但现在问题是,把这句给注释了之后,请问怎么捕获发邮件的返回信息(提示成功或失败)?
回复 支持 反对

使用道具 举报

发表于 2009-12-10 16:07:38 | 显示全部楼层
这个没有返回。你把那句提示消息的代码放到后边去吧。另外发邮件是需要时间的,最好加一个延时。只要设置正确符合邮件的必要条件,那么都可以正常发送出去的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-10 16:25:50 | 显示全部楼层
客户要批量来发
如果加延时的话,我不知道什么时候才发送完成,如果没发送完成我就释放了,后面就会全部都发送失败。要重新运行功能,才能发送成功。
回复 支持 反对

使用道具 举报

发表于 2009-12-10 16:29:44 | 显示全部楼层
你是循环发送邮件吧,那你把创建和释放的代码放到循环外呀。循环中加一个延时以确保不要发送的太频繁。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-10 16:47:24 | 显示全部楼层
lMessage.Free;
    MailSystem.Free;
    SendMailExchang.Free;  

我想问一下,这些一定要释放吗?我把这几个注释了,然后在CloseQuery事件中写了这些:
  if SendMailExchang.Sending then
  begin
     dialogs.ShowMessage('邮件还没发送完成!');
     CanClose := false;
  end else CanClose := true;

随便测试了两下,没发现有错误。
回复 支持 反对

使用道具 举报

发表于 2009-12-10 16:56:24 | 显示全部楼层
创建出来的对象一般要释放。
你可以这样,formcreate的时候创建,formdestroy的时候释放。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 15:28 , Processed in 0.041114 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表