MAPISendMail посылка электронной почты
От: xZeus  
Дата: 04.01.03 10:28
Оценка:
Не могу отослать письмо с помощью MAPISendMail функция возвращяет ошибку. (MAPI_E_FAILURE One or more unspecified errors occurred; no message was sent.)
В Q&A по этому вопросу был там автор из за громоздкости примера ссылается на демонстрационный проекте. Где этот самый демонстрационный проект?
Помогите люди делаю вроде всё как в Win32 SDK написанно.
Re: MAPISendMail посылка электронной почты
От: ziserg Украина  
Дата: 04.01.03 10:34
Оценка:
Здравствуйте, xZeus, Вы писали:

Z>Не могу отослать письмо с помощью MAPISendMail функция возвращяет ошибку. (MAPI_E_FAILURE One or more unspecified errors occurred; no message was sent.)

Z>В Q&A по этому вопросу был там автор из за громоздкости примера ссылается на демонстрационный проекте. Где этот самый демонстрационный проект?
Z>Помогите люди делаю вроде всё как в Win32 SDK написанно.
Z>
Приведи код, так сложно сразу сказать, нюансов просто валом
Re[2]: MAPISendMail посылка электронной почты
От: xZeus  
Дата: 04.01.03 11:10
Оценка:
Здравствуйте, ziserg, Вы писали:

Z>Здравствуйте, xZeus, Вы писали:


Z>>Не могу отослать письмо с помощью MAPISendMail функция возвращяет ошибку. (MAPI_E_FAILURE One or more unspecified errors occurred; no message was sent.)

Z>>В Q&A по этому вопросу был там автор из за громоздкости примера ссылается на демонстрационный проекте. Где этот самый демонстрационный проект?
Z>>Помогите люди делаю вроде всё как в Win32 SDK написанно.
Z>>
Z>Приведи код, так сложно сразу сказать, нюансов просто валом

MapiMessage Message;
Message.ulReserved=0;
Message.lpszSubject="Test";
// Body text
Message.lpszNoteText="Text";
Message.lpszMessageType=NULL;
// Sender (From
MapiRecipDesc From;
From.ulReserved=0;
From.ulRecipClass=0;
From.lpszName="Alex";
From.lpszAddress="SMTP:khan_a@ngs.ru";

Message.lpOriginator=&From;

// To:
MapiRecipDesc To[1];
To[0].ulReserved=0;
To[0].ulRecipClass=1;
To[0].lpszName="Luda";
To[0].lpszAddress="SMTP:milika@ngs.ru";

Message.nRecipCount=1;
Message.lpRecips=To;
// No attachments
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)
{
// Call MAPI function MAPISendMail ----
int ret = fnSend(0, // Create new sesion
(ULONG)Form1->Handle, // All displayed windows as modal
&Message, // The Message
MAPI_LOGON_UI | MAPI_NEW_SESSION, // Flags MAPI_DIALOG
0); // Reserved mast be zeero

// processing return value
if(ret==SUCCESS_SUCCESS)
Application->MessageBox("Message sends SUCCESSful", "Ok!", MB_OK);
else
{
// Функция DecodeErrorMessage(ret) прост преобразует код ошобки в текст
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);
Re[3]: MAPISendMail посылка электронной почты
От: ziserg Украина  
Дата: 04.01.03 11:31
Оценка:
Здравствуйте, xZeus, Вы писали:

Z>Здравствуйте, ziserg, Вы писали:


Z>>Здравствуйте, xZeus, Вы писали:


Z>>>Не могу отослать письмо с помощью MAPISendMail функция возвращяет ошибку. (MAPI_E_FAILURE One or more unspecified errors occurred; no message was sent.)

Z>>>В Q&A по этому вопросу был там автор из за громоздкости примера ссылается на демонстрационный проекте. Где этот самый демонстрационный проект?
Z>>>Помогите люди делаю вроде всё как в Win32 SDK написанно.
Z>>>
Z>>Приведи код, так сложно сразу сказать, нюансов просто валом
Z>MapiMessage Message;
Z>Message.ulReserved=0;
Z>Message.lpszSubject="Test";
Z>// Body text
Z>Message.lpszNoteText="Text";
Z>Message.lpszMessageType=NULL;
Z>// Sender (From:)
Z>MapiRecipDesc From;
Z>From.ulReserved=0;
Z>From.ulRecipClass=0;
Z>From.lpszName="Alex";
Z>From.lpszAddress="SMTP:khan_a@ngs.ru";

Z>Message.lpOriginator=&From;

Z>// To:
Z>MapiRecipDesc To[1];
Z>To[0].ulReserved=0;
Z>To[0].ulRecipClass=1;
Z>To[0].lpszName="Luda";
Z>To[0].lpszAddress="SMTP:milika@ngs.ru";

Z>Message.nRecipCount=1;
Z>Message.lpRecips=To;
Z>// No attachments
Z>Message.nFileCount=0;
Z>Message.lpFiles=NULL;

Z>typedef ULONG (FAR PASCAL *MAPISendMail) (LHANDLE lhSession,
Z>                                ULONG ulUIParam,
Z>                                lpMapiMessage lpMessage,
Z>                                FLAGS flFlags,
Z>                                ULONG ulReserved);

Z>HMODULE h = LoadLibrary("Mapi32.dll");
Z>if(h!=NULL)
Z>{
Z>    MAPISendMail fnSend = (MAPISendMail)GetProcAddress(h,"MAPISendMail");
Z>    if(fnSend!=NULL)
Z>    {
Z>        // Call MAPI function MAPISendMail ----
Z>        int ret = fnSend(0, // Create new sesion
Z>                 (ULONG)Form1->Handle, // All displayed windows as modal
Z>                 &Message, // The Message
Z>                 MAPI_LOGON_UI | MAPI_NEW_SESSION,  // Flags MAPI_DIALOG
Z>                 0); // Reserved mast be zeero

Z>        // processing return value
Z>        if(ret==SUCCESS_SUCCESS)
Z>        Application->MessageBox("Message sends SUCCESSful", "Ok!", MB_OK);
Z>        else
Z>        {
Z>            // Функция DecodeErrorMessage(ret) прост преобразует код ошобки в текст
Z>            Application->MessageBox(DecodeErrorMessage(ret).c_str(), "Error", MB_OK);
Z>        }
Z>    }else Application->MessageBox("Can't get DLL function", "Error!", MB_OK);

Z>FreeLibrary(h);
Z>}else Application->MessageBox("Can't load DLL", "Error!", MB_OK);


Пофиксеный код
MapiMessage Message = { 0 } ;
//Message.ulReserved=0;  // Не надо изврата
Message.lpszSubject="Test";
// Body text
Message.lpszNoteText="Text";

// Sender (From:)
MapiRecipDesc From = { 0 } ;
From.lpszName="Alex";
From.lpszAddress="khan_a@ngs.ru";
Message.lpOriginator=&From;

// To:
MapiRecipDesc To[1] = { 0 }; // Не забываем обнулять!!!
To[0].ulRecipClass=1;
To[0].lpszName="Luda";
To[0].lpszAddress="milika@ngs.ru";

Message.nRecipCount=1;
Message.lpRecips=To;

[skipped...]
Re[4]: MAPISendMail посылка электронной почты
От: xZeus  
Дата: 04.01.03 12:03
Оценка:
Здравствуйте, ziserg, Вы писали:

Z>Здравствуйте, xZeus, Вы писали:


Z>>Здравствуйте, ziserg, Вы писали:


Z>>>Здравствуйте, xZeus, Вы писали:


Z>>>>Не могу отослать письмо с помощью MAPISendMail функция возвращяет ошибку. (MAPI_E_FAILURE One or more unspecified errors occurred; no message was sent.)

Z>>>>В Q&A по этому вопросу был там автор из за громоздкости примера ссылается на демонстрационный проекте. Где этот самый демонстрационный проект?
Z>>>>Помогите люди делаю вроде всё как в Win32 SDK написанно.
Z>>>>
Z>>>Приведи код, так сложно сразу сказать, нюансов просто валом
Z>
Z>>MapiMessage Message;
Z>>Message.ulReserved=0;
Z>>Message.lpszSubject="Test";
Z>>// Body text
Z>>Message.lpszNoteText="Text";
Z>>Message.lpszMessageType=NULL;
Z>>// Sender (From:)
Z>>MapiRecipDesc From;
Z>>From.ulReserved=0;
Z>>From.ulRecipClass=0;
Z>>From.lpszName="Alex";
Z>>From.lpszAddress="SMTP:khan_a@ngs.ru";

Z>>Message.lpOriginator=&From;

Z>>// To:
Z>>MapiRecipDesc To[1];
Z>>To[0].ulReserved=0;
Z>>To[0].ulRecipClass=1;
Z>>To[0].lpszName="Luda";
Z>>To[0].lpszAddress="SMTP:milika@ngs.ru";

Z>>Message.nRecipCount=1;
Z>>Message.lpRecips=To;
Z>>// No attachments
Z>>Message.nFileCount=0;
Z>>Message.lpFiles=NULL;

Z>>typedef ULONG (FAR PASCAL *MAPISendMail) (LHANDLE lhSession,
Z>>                                ULONG ulUIParam,
Z>>                                lpMapiMessage lpMessage,
Z>>                                FLAGS flFlags,
Z>>                                ULONG ulReserved);

Z>>HMODULE h = LoadLibrary("Mapi32.dll");
Z>>if(h!=NULL)
Z>>{
Z>>    MAPISendMail fnSend = (MAPISendMail)GetProcAddress(h,"MAPISendMail");
Z>>    if(fnSend!=NULL)
Z>>    {
Z>>        // Call MAPI function MAPISendMail ----
Z>>        int ret = fnSend(0, // Create new sesion
Z>>                 (ULONG)Form1->Handle, // All displayed windows as modal
Z>>                 &Message, // The Message
Z>>                 MAPI_LOGON_UI | MAPI_NEW_SESSION,  // Flags MAPI_DIALOG
Z>>                 0); // Reserved mast be zeero

Z>>        // processing return value
Z>>        if(ret==SUCCESS_SUCCESS)
Z>>        Application->MessageBox("Message sends SUCCESSful", "Ok!", MB_OK);
Z>>        else
Z>>        {
Z>>            // Функция DecodeErrorMessage(ret) прост преобразует код ошобки в текст
Z>>            Application->MessageBox(DecodeErrorMessage(ret).c_str(), "Error", MB_OK);
Z>>        }
Z>>    }else Application->MessageBox("Can't get DLL function", "Error!", MB_OK);

Z>>FreeLibrary(h);
Z>>}else Application->MessageBox("Can't load DLL", "Error!", MB_OK);
Z>


Z>Пофиксеный код

Z>
Z>MapiMessage Message = { 0 } ;
Z>//Message.ulReserved=0;  // Не надо изврата
Z>Message.lpszSubject="Test";
Z>// Body text
Z>Message.lpszNoteText="Text";

Z>// Sender (From:)
Z>MapiRecipDesc From = { 0 } ;
Z>From.lpszName="Alex";
Z>From.lpszAddress="khan_a@ngs.ru";
Z>Message.lpOriginator=&From;

Z>// To:
Z>MapiRecipDesc To[1] = { 0 }; // Не забываем обнулять!!!
Z>To[0].ulRecipClass=1;
Z>To[0].lpszName="Luda";
Z>To[0].lpszAddress="milika@ngs.ru";

Z>Message.nRecipCount=1;
Z>Message.lpRecips=To;

Z>[skipped...]

Z>


Фурычиит!!! Спасбо!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.