起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 753|回复: 28

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

[复制链接]
发表于 2009-12-9 17:16:18 | 显示全部楼层 |阅读模式
http://bbs.justep.com/forum.php? ... C%FE%2A%B4%FA%C2%EB

上面是以前的贴,里面提到“此功能需要引入“思维加速\邮件\邮件系统”功能
”现在这里应该引用哪些东西?
回复

使用道具 举报

发表于 2009-12-9 17:18:30 | 显示全部楼层
业务模型\协同系统\个人事务\邮件库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-9 17:21:22 | 显示全部楼层
我引用了这个,还是编译不过

1111.jpg

40.18 KB, 下载次数: 243

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-9 17:23:01 | 显示全部楼层
是不是还要在uses里加什么?
回复 支持 反对

使用道具 举报

发表于 2009-12-9 17:24:06 | 显示全部楼层
你加上再试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-9 17:29:52 | 显示全部楼层
我加上了这个MAILLIBRARY,有一些编译过了。
还有:TMessageExchanger,TMessage,SendMailExchang这三个不知道是什么,要引用什么。

[错误]Biz:\ZJGLXT\ONE_YW\XYJ.FUNC.DIR\YJ.Form.pas(22, 20): Undeclared identifier "TMessageExchanger"
[错误]Biz:\ZJGLXT\ONE_YW\XYJ.FUNC.DIR\YJ.Form.pas(26, 13): Undeclared identifier "TMessage"
[错误]Biz:\ZJGLXT\ONE_YW\XYJ.FUNC.DIR\YJ.Form.pas(29, 3): Undeclared identifier "SendMailExchang"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-9 17:37:21 | 显示全部楼层
我找到了,再加上这个Justep.Tools.Mail编译过了,但又有新的问题,等我仔细看一下,再问。
回复 支持 反对

使用道具 举报

发表于 2009-12-9 17:37:36 | 显示全部楼层
代码发邮件的例子,你参考这个吧
http://bbs.justep.com/forum.php?mod=viewthread&tid=29211
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-10 10:46:00 | 显示全部楼层
procedure TYJ.Button2Click(Sender: TObject);
var
  SendMailExchang: TMessageExchanger;
  lMessage: TMessage;
  lAccount, FAccount: TMailAccount;
  MailSystem: TMailSystem;
  lMailContent: TMemoryStream;
begin
  SendMailExchang := TMessageExchanger.Create(nil);
  lMessage := TMessage.Create(nil);
  lAccount := TMailAccount.Create;
  MailSystem := TMailSystem.Create;
    try
    SendMailExchang.MessageKind := TMessageKind.mkSend;
    lAccount.SMTPHost := 'smtp.sina.com';
    lAccount.SMTPPort := 25;
    lAccount.POPHost := 'pop.sina.com';
    lAccount.POPPort := 110;
    lAccount.MailAddress := 'gxwit001@sina.com';
    lAccount.UserID := 'gxwit001';
    lAccount.Password := 'a123456';
    lAccount.AccountID := 'gxwit001';
    lMessage.From := 'gxwit001@sina.com';  //发件人
    lMessage.SendTo := 'gxwit007@163.com';  //收件人
    lMessage.Subject := '时间' + sysUtils.DateTimeToStr(Business.Data.SysSrv.SysService.time) ;             //mail tatil
    lMessage.Body.Text := '邮件测试,多多打扰请见谅11!';
    lMessage.ContentFormatType := TContentFormatType.ftHTML;  // 设置正文内容格式
    if lAccount <> nil then
    begin
      lMailContent := TMemoryStream.Create;  //用于存放邮件的正文
      lMailContent.Clear;
      lMessage.SaveToStream(lMailContent);
      lMailContent.Position := 0;  //移动流的指针
      try
        if lAccount.Verify then
        begin
          if lAccount.DifferPOP then
            SendMailExchang.SMTPMessages.Add(lAccount.VerifyAccount,
              lAccount.VerifyPassword, lAccount.SMTPHost,
              lMessage.From, lMessage.SendTo, lMailContent, lAccount.SMTPPort,false)
          else
            SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
              lAccount.SMTPHost, lMessage.From, lMessage.SendTo, lMailContent,
              lAccount.SMTPPort,false);
        end
        else
          SendMailExchang.SMTPMessages.Add(lAccount.SMTPHost, lMessage.From,
            lMessage.SendTo, lMailContent, lAccount.SMTPPort,false);
      finally
        lMailContent.Free;
        lAccount.Free;
      end;
        SendMailExchang.Active := True;  //发送邮件
        sysUtils.Sleep(300);
        dialogs.showmessage('邮件发送成功!');
    end;
  finally
    lMessage.Free;
    MailSystem.Free;
    SendMailExchang.Free;  //  SendMailExchang对象一定要最后释放
  end;
end;

上面的代码+测试的邮箱,帮我测试一下。
运行功能后,点按钮发送,有时在接收的邮箱'gxwit007@163.com'中可以接收到邮件,但是再点第二次的时候,就接收不到了。请问,这怎么解决?
回复 支持 反对

使用道具 举报

发表于 2009-12-10 10:58:57 | 显示全部楼层
不要频繁的发送,点发送后,需要做一个等待(3-5s),然后再做第二次发送。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 15:11 , Processed in 0.045196 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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