Re: C++ Builder 5.0: как программно послать письмо?
От:
MNZ
Дата: 12.07.02 08:15
Оценка:
Здравствуйте FireWorm, Вы писали:
FW>Господа!
FW>Подскажите плиз как программно послать письмо из C++ Builderа
FW>(с использованием MS Outlook)
FW>заранее благодарен за помощь...
Я сделал это так:
void __fastcall TMainForm::SendButtonClick(TObject *Sender)
{
TMapiRecipDesc RecipDesc;
TMapiMessage Message;
Cardinal Result;
TStringList *Note;
// ...
try
{
Note = new TStringList();
// Составление текста письма
Note->Add("...");
Note->Add("...");
RecipDesc.ulReserved = 0;
RecipDesc.ulRecipClass = MAPI_TO;
RecipDesc.lpszName = NULL;
RecipDesc.lpszAddress = "needed@e-mail.ru";
RecipDesc.ulEIDSize = 0;
RecipDesc.lpEntryID = 0;
Message.ulReserved = 0;
Message.lpszSubject = "Тема письма";
Message.lpszNoteText = Note->Text.c_str();
Message.lpszMessageType = NULL;
Message.lpszDateReceived = NULL;
Message.lpszConversationID = NULL;
Message.flFlags = 0;
Message.lpOriginator = NULL;
Message.nRecipCount = 1;
Message.lpRecips = &RecipDesc;
Message.nFileCount = 0;
Message.lpFiles = NULL;
Result = MapiSendMail(0, reinterpret_cast<unsigned int>(Application->Handle),
Message, MAPI_DIALOG | MAPI_LOGON_UI | MAPI_NEW_SESSION, 0);
if(!Result)
{
MessageBox(Handle, "Ошибка при отправке почты", "Ошибка",
MB_OK | MB_ICONSTOP);
}
}
__finally
{
delete Note;
}
}
P.S. Кстати, код позаимствовал из examples.
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить