gpt4 book ai didi

C++ SimpleMAPI SendMail 总是失败?

转载 作者:太空狗 更新时间:2023-10-29 22:53:50 26 4
gpt4 key购买 nike

我正在尝试使用 SimpleMAPI在 C++ 应用程序 (Borland C++ Builder 2006) 中使用 Windows Mail 或 Thunderbird 在 Vista SP1 上显示带有附件的“写消息”对话。我应该可以使用 MAPISendMail去做这个。

我没有填写收件人地址,因为我希望用户在邮件客户端显示“写消息”对话框时这样做。我也没有填写发件人地址,因为我希望邮件客户端使用默认值。我已经尝试对它们进行硬编码以查看是否是问题所在,而事实并非如此。

我的代码是这样的:

HINSTANCE hMAPI;
LPMAPISENDMAIL pSendMail;
MapiMessage message;
MapiFileDesc file;

ZeroMemory( &message, sizeof( MapiMessage ) );
ZeroMemory( &file, sizeof( MapiFileDesc ) );

hMAPI = LoadLibraryA( "MAPI32.DLL" );

pSendMail = (LPMAPISENDMAIL)GetProcAddress( hMAPI, "MAPISendMail" );

// setup the attachment...
file.nPosition = -1;
file.lpszPathName = "C:\\my_attachment.dat";

// set up the message...
message.lpszSubject = "My Subject";
message.lpszNoteText = "My Message...";
message.lpszMessageType = "";
message.nRecipCount = 0;
message.lpRecips = NULL; // we don't know the recipient address(s)
message.nFileCount = 1;
message.lpFiles = &file;
message.lpOriginator = NULL; // we don't know the users from address

dwResult = pSendMail( lhSessionNull, (DWORD)Application->Handle, &message, MAPI_LOGON_UI | MAPI_DIALOG, 0 );
if( dwResult == SUCCESS_SUCCESS )
{
// ...yay! :)
}
else
{
// ...we always fail here with: MAPI_E_FAILURE
}

它总是失败,错误代码为 2 (MAPI_E_FAILURE)。我做错了什么?

非常感谢。

最佳答案

关于C++ SimpleMAPI SendMail 总是失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/484834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com