Вот через mapi32. Осталось на X++ переписать.
X++:
MapiMessage Message = { 0 } ;
Message.lpszSubject="bla-bla";
Message.lpszNoteText="bla-bla";
MapiRecipDesc From = { 0 } ;
From.lpszName="name";
From.lpszAddress="[EMAIL="name@name.ru"]name@name.ru[/EMAIL]";
Message.lpOriginator=&From;
MapiRecipDesc To[1] = { 0 };
To[0].ulRecipClass=1;
To[0].lpszName="name";
To[0].lpszAddress="[EMAIL="name@name.ru"]name@name.ru[/EMAIL]";
Message.nRecipCount=1;
Message.lpRecips=To;
Message.nFileCount=0;
Message.lpFiles=NULL;
typedef ULONG (FAR PASCAL *MAPISendMail) (LHANDLE lhSession,
ULONG ulUIParam,
lpMapiMessage lpMessage,
FLAGS flFlags,
ULONG ulReserved);
HMODULE h = LoadLibrary("Mapi32.dll");
if(h!=NULL)
{
MAPISendMail fnSend = (MAPISendMail)GetProcAddress(h,"MAPISendMail");
if(fnSend!=NULL)
{
int ret = fnSend(0,
(ULONG)Form1->Handle,
&Message,
MAPI_LOGON_UI | MAPI_NEW_SESSION,
0);
if(ret==SUCCESS_SUCCESS)
Application->MessageBox("Message sends SUCCESSful", "Ok!", MB_OK);
else
{
Application->MessageBox(DecodeErrorMessage(ret).c_str(), "Error", MB_OK);
}
}
else
Application->MessageBox("Can't get DLL function", "Error!", MB_OK);
FreeLibrary(h);
}
else
Application->MessageBox("Can't load DLL", "Error!", MB_OK);