需要能够解析从outlook中导出的邮件
如:*.eml(outlook邮件),*.msg(Exchange邮件)用组件做的也可以,非常着急
需要DEMO注:不需要能接发邮件
只要能把*.eml或*.msg解码成:发件人、收件人、抄送人、时间、
标题、邮件内容、附件数、附件标题、附件内容等内容即可!好像delphi的outlook组件可以,不过从没用过:(
如:*.eml(outlook邮件),*.msg(Exchange邮件)用组件做的也可以,非常着急
需要DEMO注:不需要能接发邮件
只要能把*.eml或*.msg解码成:发件人、收件人、抄送人、时间、
标题、邮件内容、附件数、附件标题、附件内容等内容即可!好像delphi的outlook组件可以,不过从没用过:(
解决方案 »
- 发送消息,关闭弹出窗口
- 如何保存 TListView 内的内容到文件?
- 关于api(CreateColorTransform )在帮助里都查不到,该怎样用
- ADO操作大字段地问题,急!!
- 图片的存取问题!
- delphi第二张盘上的ABC控件怎么不能用啊?
- 关闭系统
- Delphi的Diagram頁有何用處?
- 求助:怎样捕获socket的出错消息,并让服务器端的Socket从新初始化为监听状态?
- 为什么运行corba服务器或客户程序是总是提示找不到orbpas.dll?
- 用windowmediaplay控件怎样控制播放的速度??<不是delphi自带的Tmediaplayer控件>
- 一个菜鸟的问题!
function GetEmlData(FileName: String; Stream: TMemoryStream): Boolean;implementationfunction GetEmlData(FileName: String; Stream: TMemoryStream): Boolean;
begin Stream.Clear;
try
Stream.LoadFromFile(FileName);
result:=True;
except
result:=False;
end;end;function GetMsgData(FileName: String; Stream: TMemoryStream): Boolean;
var pvStg: IStorage;
pvStm: IStream;
stat: TStatStg;
dwSize: Integer;
const
StgFlags = STGM_READ or STGM_SHARE_EXCLUSIVE;
StmName = '__substg1.0_1000001E';
begin // Set default result
result:=False; // Open storage file
if (StgOpenStorage(PWideChar(WideString(FileName)), nil, StgFlags, nil, 0, pvStg) = S_OK) then
begin
// Attempt to get the stream
if (pvStg.OpenStream(PWideChar(WideString(StmName)), nil, StgFlags, 0, pvStm) = S_OK) then
begin
// Stat the stream to get the size
if (pvStm.Stat(stat, STATFLAG_NONAME) = S_OK) then
begin
// Clear memory stream
Stream.Clear;
Stream.Size:=stat.cbSize;
// Write contents of stream to memory stream
result:=(pvStm.Read(Stream.Memory, stat.cbSize, @dwSize) = S_OK);
end;
// Release the stream
pvStm:=nil;
end;
// Release the storage interface
pvStg:=nil;
end;end;-----
Example of usagevar
ms: TMemoryStream;
begin ms:=TMemoryStream.Create;
if GetMsgData('c:\mypath\myfile.msg', ms) then
MessageBox(0, ms.Memory, nil, MB_OK);
if GetEmlData('c:\mypath\myfile.eml', ms) then
MessageBox(0, ms.Memory, nil, MB_OK);end;