起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: ht88th

【搞定】如何用代码实现平台的内网邮件发送

[复制链接]
 楼主| 发表于 2007-6-29 16:42:54 | 显示全部楼层
还是不行哦!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-30 09:45:05 | 显示全部楼层
lAccount := MailSystem.FindAccountByAddress(lMessage.From)
之后,   lAccount  始终为nil,
你们能不能提供个参照代码, 你们难道没有测试吗?
回复 支持 反对

使用道具 举报

发表于 2007-6-30 13:28:09 | 显示全部楼层
今天只有值班的,周一确认一下,然后跟帖告知,见谅
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-2 12:32:58 | 显示全部楼层
UP
回复 支持 反对

使用道具 举报

发表于 2007-7-2 13:07:14 | 显示全部楼层
请不用up,正在研究这个问题
回复 支持 反对

使用道具 举报

发表于 2007-7-3 12:59:25 | 显示全部楼层
楼主,5楼的代码是用于发送外部邮件的。

发送内部邮件,请参考:
uses
  MAILLIBRARY;

procedure TfrmSendMail.SendMail1;
var
  MailGUID, MailPath: string;
  lStream: TStream;
begin
  lStream := TMemoryStream.Create;
  MailGUID := jsCommon.CreateGUIDStr;
  MailPath := 'BIZ_DRAFT';
  try
    //生成邮件内容
    SaveToStream('ZS', edtRec.Text, '', '', edtSub.Text, memo1.Text, lStream);
    //保存邮件到发件箱
    SaveMail(mailGuid, mailPath, lStream);
    //发送内部邮件
    TMailSystem.CreateMailSystem.SendInternalMail(MailGuid, edtRec.Text, 0, 0);
    //移动发件箱信息到已发送邮箱
    TMailSystem.CreateMailSystem.MoveMail(MailGUID, 'BIZ_OUTBOX', 'BIZ_SENTBOX');
  finally
    lStream.Free;
  end;
end;

procedure TfrmSendMail.SaveToStream(Const AFrom, ASendTo, ACC, ABcc, ASubject,
  ABodyText: String; var AStream: TStream);
var
  msgMail: TMessage;
begin
  msgMail := TMessage.Create(self);
  try
    msgMail.From := AFrom;
    msgMail.SendTo := ASendTo;
    msgMail.CC := ACC;
    msgMail.Bcc := ABcc;
    msgMail.Subject := ASubject;
    msgMail.Body.Text := ABodyText;
    msgMail.SaveToStream(AStream);
  finally
    msgMail.Free;
  end;
end;

procedure TfrmSendMail.SaveMail(var MailGUID, MailPath: string; AStream: TStream);
var
  lMailRef: TMailReference;
  lContent: TStream;
  lAttachments: TObjectList;
  lMailGUID, lMailPath: string;
begin
  lMailGUID := MailGUID;
  //保存的路径
  lMailPath := 'BIZ_OUTBOX';

  lMailRef := TMailReference.Create;
  lMailRef.MailGUID := lMailGUID;
  lMailRef.MailInfo.MailGUID := lMailGUID;
  lMailRef.MailInfo.UIDL := jsCommon.CreateGUIDStr;
  lMailRef.PathGUID := lMailPath;

  lContent := TMemoryStream.Create;
  lAttachments := TObjectList.Create(True);

  AStream.Position := 0;
  TMailSystem.CreateMailSystem.MsgStreamToMail(lMailRef, lContent, lAttachments, AStream);

  lMailRef.MailInfo.Date := SysUtils.Now;
  lMailRef.Time := lMailRef.MailInfo.Date;
  lMailRef.State := 2;

  //保存邮件
  TMailSystem.CreateMailSystem.SaveMail(lMailRef, lContent, lAttachments);

  MailPath := lMailPath;
  MailGUID := lMailGUID;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-3 13:37:13 | 显示全部楼层
可以了,谢谢你们的大力支持!

结贴吧。
回复 支持 反对

使用道具 举报

发表于 2007-7-3 14:38:42 | 显示全部楼层
ok,jiahaiminghr 高手
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 06:49 , Processed in 0.041832 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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