Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Нашел в Инете- не хочет работать   Найти похожие ветки 

 
Marat ©   (2007-04-30 13:50) [0]

Начал разбираться с OutLookExpress. Хочу, чтобы можно было послать сформированный файл кому-нибудь на почту. Нашел в Инете:
uses
comobj;

procedure sendmail(subject, body, recvaddress : string; attachs : array of string);
var
mm, ms : variant;
i : integer;
begin
ms := createoleobject("msmapi.mapisession");
try
mm := createoleobject("msmapi.mapimessages");
try
ms.downloadmail := false;
ms.newsession := false;
ms.logonui := true;
ms.signon;
mm.sessionid := ms.sessionid;

mm.compose;

mm.recipindex := 0;
mm.recipaddress := recvaddress;
mm.msgsubject := subject;
mm.msgnotetext := body;

for i := low(attachs) to high(attachs) do
begin
mm.attachmentindex := i;
mm.attachmentpathname := attachs[i];
end;
mm.send(true);
ms.signoff;
finally
varclear(ms);
end;
finally
varclear(mm);
end;
end;

procedure tform1.formcreate(sender : tobject);
begin
sendmail("subject", "body"#13#10"second", "billgates@microsoft.com",
["c:winntexplorer.exe", "c:winntwin.ini"]);
end;

попробовал запустить, а в строке "ms := createoleobject("msmapi.mapisession");" выдается ошибка "Недопустимая строка с указанием класса".
Как с этим бороться?


 
turbouser ©   (2007-04-30 13:58) [1]


uses MAPI;
function SendMail(const From, Dest, Subject, Text, FileName: PAnsiChar; Outlook: boolean): integer;
var
 Message: TMapiMessage;
 Recipient, Sender: TMapiRecipDesc;
 File_Attachment: TMapiFileDesc;

 function MakeMessage: TMapiMessage;
 begin
   FillChar(Sender, SizeOf(Sender), 0);
   Sender.ulRecipClass := MAPI_ORIG;
   Sender.lpszAddress  := From;

   FillChar(Recipient, SizeOf(Recipient), 0);
   Recipient.ulRecipClass := MAPI_TO;
   Recipient.lpszAddress  := Dest;

   FillChar(File_Attachment, SizeOf(File_Attachment), 0);
   File_Attachment.nPosition    := cardinal(-1);
   File_Attachment.lpszPathName := FileName;

   FillChar(Result, SizeOf(Result), 0);
   with Message do
   begin
     lpszSubject  := Subject;
     lpszNoteText := Text;
     lpOriginator := @Sender;
     nRecipCount  := 1;
     lpRecips     := @Recipient;
     nFileCount   := 1;
     lpFiles      := @File_Attachment;
   end;
 end;

var
 SM: TFNMapiSendMail;
 MAPIModule: HModule;
 MAPI_FLAG: cardinal;
begin
 if Outlook then
   MAPI_FLAG := MAPI_DIALOG
 else
   MAPI_FLAG := 0;
 MAPIModule := LoadLibrary(PChar(MAPIDLL));
 if MAPIModule = 0 then
   Result := -1
 else
   try
     @SM := GetProcAddress(MAPIModule, "MAPISendMail");
     if @SM <> nil then
     begin
       MakeMessage;
       Result := SM(0, Application.Handle, Message, MAPI_FLAG, 0);
     end
     else
       Result := 1;
   finally
     FreeLibrary(MAPIModule);
   end;
end;


 
Marat ©   (2007-04-30 14:06) [2]

А можно пример запуска функции SendMail(const From, Dest, Subject, Text, FileName: PAnsiChar; Outlook: boolean): integer;?


 
turbouser ©   (2007-04-30 14:12) [3]

SendMail("от_кого@откуда.ru", "кому@куда.ru","Сабж", "Текст"#13#10"сообщения", "c:\autoexec.bat", True);


 
Marat ©   (2007-04-30 14:26) [4]

А нельзя, чтобы он сам отправил без окна OutLookExpress?


 
turbouser ©   (2007-04-30 15:25) [5]


> Marat ©   (30.04.07 14:26) [4]

Сам же написАл про OE :)
Без него - см. Indy.
Вот например:

uses idSMTP, idMessage, IdCharsets, IdAttachment;
procedure SendMail(Recipients_: string; subj: string = "");
var
 MessageSend: TidMessage;
 SMTP: TidSMTP;
begin
 SMTP := TidSMTP.Create;
 MessageSend := TidMessage.Create(nil);
 try
   SMTP.Host     := "адрес сервера";
   SMTP.Port     := 25;
   SMTP.Username := "имя пользователя";
   SMTP.Password := "пароль";
   SMTP.Connect;
   with MessageSend do
   begin
     charset     := IdCharsetNames[idcswindows_1251];
     contentType := "text/plain";
     From.Text   := "user@server.ru";
     ReplyTo.EMailAddresses := "user@server.ru";
     Recipients.EMailAddresses := Recipients_;
     Subject     := "Сабж";
     Body.Add("Строка 1");
     Body.Add("Строка 2");
     Priority := TIdMessagePriority(mpHighest);
     CCList.EMailAddresses := "user@server.ru";
     BccList.EMailAddresses := "user@server.ru";
     ReceiptRecipient.Text := Recipients_;
   end;
   SMTP.Send(MessageSend);
   try
     SMTP.Disconnect;
   except
   end;
 finally
   SMTP.Free;
   MessageSend.Free;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
3-1173072424
Feds
2007-03-05 08:27
2007.05.20
Удаление пустых строк в аксессе


15-1176885549
DVM
2007-04-18 12:39
2007.05.20
Как будет по английски Ведущий разработчик? Как говорят?


4-1166551928
2expres
2006-12-19 21:12
2007.05.20
Помогите в Delphi организовать таймер на 10мс


2-1178263801
DarkMaxx
2007-05-04 11:30
2007.05.20
Построение графика


15-1177261165
Tempp
2007-04-22 20:59
2007.05.20
Деньги - зло!