- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
This question类似,但未显示如何添加收件人。
我该如何做到这两点?
我们希望为尽可能多的 Windows 平台(从 XP 及更高版本)提供尽可能广泛的支持
我们正在使用 visual studio 2008
本质上我们想发送一封电子邮件:
从我们的程序中,让用户能够添加任何信息或取消它。
编辑我正在尝试使用 MAPISendMail()我从顶部附近链接的问题中复制了大部分代码,但我没有收到电子邮件 dlg 框,我从调用中得到的错误返回是:0x000f - “系统找不到指定的驱动器”
如果我注释掉设置收件人的行,它工作正常(当然我没有预先填写收件人)
代码如下:
#include <tchar.h>
#include <windows.h>
#include <mapi.h>
#include <mapix.h>
int _tmain( int argc, wchar_t *argv[] )
{
HMODULE hMapiModule = LoadLibrary( _T( "mapi32.dll" ) );
if ( hMapiModule != NULL )
{
LPMAPIINITIALIZE lpfnMAPIInitialize = NULL;
LPMAPIUNINITIALIZE lpfnMAPIUninitialize = NULL;
LPMAPILOGONEX lpfnMAPILogonEx = NULL;
LPMAPISENDDOCUMENTS lpfnMAPISendDocuments = NULL;
LPMAPISESSION lplhSession = NULL;
LPMAPISENDMAIL lpfnMAPISendMail = NULL;
lpfnMAPIInitialize = (LPMAPIINITIALIZE)GetProcAddress( hMapiModule, "MAPIInitialize" );
lpfnMAPIUninitialize = (LPMAPIUNINITIALIZE)GetProcAddress( hMapiModule, "MAPIUninitialize" );
lpfnMAPILogonEx = (LPMAPILOGONEX)GetProcAddress( hMapiModule, "MAPILogonEx" );
lpfnMAPISendDocuments = (LPMAPISENDDOCUMENTS)GetProcAddress( hMapiModule, "MAPISendDocuments" );
lpfnMAPISendMail = (LPMAPISENDMAIL)GetProcAddress( hMapiModule, "MAPISendMail" );
if ( lpfnMAPIInitialize && lpfnMAPIUninitialize && lpfnMAPILogonEx && lpfnMAPISendDocuments )
{
HRESULT hr = (*lpfnMAPIInitialize)( NULL );
if ( SUCCEEDED( hr ) )
{
hr = (*lpfnMAPILogonEx)( 0, NULL, NULL, MAPI_EXTENDED | MAPI_USE_DEFAULT, &lplhSession );
if ( SUCCEEDED( hr ) )
{
// this opens the email client
// create the msg. We need to add recipients AND subject AND the dmp file
// file attachment
MapiFileDesc filedesc;
::ZeroMemory(&filedesc, sizeof(filedesc));
filedesc.nPosition = (ULONG)-1;
filedesc.lpszPathName = "E:\\Development\\Open\\testmail\\testmail.cpp";
// recipient(s)
MapiRecipDesc recip;
::ZeroMemory(&recip, sizeof(recip));
recip.lpszName = "QA email";
recip.lpszAddress = "qa@myaccount.com";
// the message
MapiMessage msg;
::ZeroMemory(&msg, sizeof(msg));
msg.lpszSubject = "Test";
msg.nRecipCount = 1; // if I comment out this line it works fine...
msg.lpRecips = &recip;
msg.nFileCount = 1;
msg.lpFiles = &filedesc;
hr = (*lpfnMAPISendMail)(0, NULL, &msg, MAPI_LOGON_UI|MAPI_DIALOG, 0);
if ( SUCCEEDED( hr ) )
{
hr = lplhSession->Logoff( 0, 0, 0 );
hr = lplhSession->Release();
lplhSession = NULL;
}
}
}
(*lpfnMAPIUninitialize)();
}
FreeLibrary( hMapiModule );
}
return 0;
}
最佳答案
糟糕 - 我忘了设置
recip.ulRecipClass = MAPI_TO;
现在效果很好。
关于c++ - 如何使用 C++ 中的 MAPI 以编程方式将带附件的电子邮件发送给已知收件人? MAPISendMail(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350011/
我正在尝试通过 Access 数据库(SendObject VB 代码)向人们发送报告。在我们去年 11 月推出 Microsoft Outlook 2010 之前,它一直是成功的。 升级后,我们不能
我正在使用 Windows Search API,它返回 mapi URL。 如何找到包含 URL 数据的文件?例如。该消息来自的 PST 文件的路径? 我如何以编程方式获取 MAPI 消息的内容或数
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
如何找到 Microsoft Exchange Server 的 MAPI 帐户的服务器名称?谢谢! 最佳答案 在 Outlook 2010 下,阅读 PR_EMSMDB_SECTION_UID 属性
有一个没有邮件客户端的 Windows Server 2008 R2,也没有安装任何邮件客户端到此服务器的选项。 我编写了一个服务,它使用简单的 MAPI 从交换服务器获取电子邮件。 已安装 Exch
我希望我的程序通过传递 MapiMessage 来在用户最喜欢的电子邮件客户端中撰写外发电子邮件。至 MAPISendMail .电子邮件的元素(例如主题)可作为不可变字符串(例如 const cha
我有一个函数可以通过 MAPI 启动用户的默认电子邮件程序。邮件程序通常在我的应用程序之上启动,但有时不会;有时我的应用程序会保留在桌面显示的顶部。有什么方法可以确保用户的电子邮件程序会在桌面上启动,
我正在使用this method从 Delphi 应用程序内部发送带有 PDF 附件的 MAPI 电子邮件。 它会打开一个 MS Outlook“新消息”窗口,其中已附加 pdf 文档和一个空白收件人
我可以从哪里下载 MAPI33.dll。我得到了链接 http://www.mapi33.adexsolutions.com/从一个网站,但似乎这是不正确的。 最佳答案 您可以在此处找到旧版本: ht
过去我用过profman2当我不想在服务器上安装 Outlook 时,为需要访问 Exchange 邮箱的服务器创建 MAPI 配置文件。当我能够以需要访问配置文件的用户身份登录时,这可以正常工作。当
我想连接到我的企业邮件服务器..但我似乎只能使用 MAPI 协议(protocol)。我如何使用 Java MAPI API 建立到我的企业邮件服务器的连接 最佳答案 不幸的是,简短的回答是:你不能。
我正在使用 C++ 中的 MAPI 库发送电子邮件。现在,我需要将我发送的电子邮件的回复设置为多封电子邮件,而我只能对一封电子邮件进行回复。 我一直在阅读,为了能够做到这一点,我需要使用对象 FLAT
我正在尝试使用扩展 MAPI 发送消息,但一直收到 E_ACCESSDENIED 错误。我正在使用调用 cpp dll 的 C# 类。我可以查看邮件和删除邮件,但不能发送。下面是我用来创建消息的 C#
我正在使用的系统包含一个地址簿。我正在寻找通过 MAPI 将地址与当前用户地址簿同步的示例代码。我需要双向同步。 如果您知道任何具有易于使用的功能的开源库,我将很高兴听到。如果您知道一个非开源库,那也
我正在使用 MapiEx(http://www.codeproject.com/Articles/10881/MAPIEx-Extended-MAPI-Wrapper) 生成邮件。 我需要在 MAPI
AFAIK,消息正文存储在以下任一属性中 - PR_RTF_COMPRESSED 或 PR_BODY 或 PR_BODY_HTML 但在我的系统上,当我通过 outlook spy 查看时 - 我在
我需要访问 Windows 用户的私有(private)地址簿。 我正在开发的软件使用的是 C++,无法使用其他任何软件。 我解决了所有问题,除了如何访问与联系人一起存储在 Outlook(或任何其他
我有一个来自第三方库的 MAPI IMessage 对象,我需要解密消息(假设它是 smime),生成另一个解密的 MAPI 对象(或覆盖现有对象)。请推荐一种方法。 一种方法是使用 IConvert
我给自己编写了一个程序来创建邮件。 首先我得到一个带有地址的字符串 vector 。现在,当我尝试使用我无法编译的 Vector 的大小初始化 RecipDesc 时,因为它在等待一个常量。 这里是一
我想通过以下方式登录到我的默认邮件收件箱: MAPILogonEx(0, profileName, NULL, MAPI_LOGON_UI, &lpMAPISession) 我将 profileNam
我是一名优秀的程序员,十分优秀!