网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
C#中使用MAPI发送E-Mail
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

{
MapiMessage msg = CreateMessage();
error = MAPISendMail(session, handle, msg, MAPI_DIALOG, 0);
Logoff();
DisposeMessage(msg);
}
}
private MapiMessage CreateMessage()
{
MapiMessage msg = new MapiMessage();
msg.subject = subject;
msg.noteText = body;
if (files != null && files.Length > 0)
{
msg.fileCount = files.Length;
msg.files = GetFilesDesc();
}
if (!string.IsNullOrEmpty(recipentName) || !string.IsNullOrEmpty(recipientAddress))
{
msg.recipCount = 1;
msg.recips = GetRecipDesc();
}
return msg;
}
private IntPtr GetFilesDesc()
{
IntPtr ptra = AllocMemory(typeof(MapiFileDesc), files.Length);

for (int i = 0; i < files.Length; i++)
{
MapiFileDesc fileDesc = new MapiFileDesc();
fileDesc.position = i;
fileDesc.fileName = Path.GetFileName(files[i]);
fileDesc.pathName = files[i];
Marshal.StructureToPtr(fileDesc, OffsetPtr(ptra, typeof(MapiFileDesc), files.Length - 1 - i), false);
}
return ptra;
}
private IntPtr GetRecipDesc()
{
IntPtr ptra = AllocMemory(typeof(MapiRecipDesc), 1);

MapiRecipDesc recipDesc = new MapiRecipDesc();
recipDesc.reserved = 0;
const int MAPI_TO = 1;
recipDesc.recipClass = MAPI_TO;
recipDesc.name = recipentName;
recipDesc.address = recipientAddress;
recipDesc.eIDSize = 0;
recipDesc.entryID = IntPtr.Zero;
Marshal.StructureToPtr(recipDesc, (IntPtr)ptra, false);

return ptra;
}
private IntPtr AllocMemory(Type structureType, int count)
{
return Marshal.AllocHGlobal(Marshal.SizeOf(structureType) * count);
}
private void Logoff()
{
if (session != IntPtr.Zero)
{
error = MAPILogoff(session, handle, 0, 0);
session = IntPtr.Zero;
}
}
private bool Logon(IntPtr hwnd)
{
this.handle = hwnd;
error = MAPILogon(hwnd, null, null, 0, 0, ref session);
if (error != 0)
error = MAPILogon(hwnd, null, null, MapiLogonUI, 0, ref session);
return error == 0;
}
private void DisposeMessage(MapiMessage msg)
{
FreeMemory(msg.files, typeof(MapiFileDesc), files.Length);
FreeMemory(msg.recips, typeof(MapiRecipDesc), 1);
msg = null;
}

/**//// <summary>
/// Release Resource
/// </summary>
/// <param name="ptr"></param>
/// <param name="structureType"></param>
/// <param name="count"></param>
private void FreeMemory(IntPtr ptr, Type structureType, int count)
{
if (ptr != IntPtr.Zero)
{
for (int i = 0; i < count; i++)
{
Marshal.DestroyStructure(OffsetPtr(ptr, structureType, i), structureType);
}
Marshal.FreeHGlobal(ptr);
}
}
}
}
 

  • 上一篇资讯: c#更换皮肤代码
  • 下一篇资讯: 用c#监控网络流量
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号