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

Вниз

Как отправить по почте текстовый файл?   Найти похожие ветки 

 
TStas ©   (2007-05-07 17:48) [0]

Через ShellExecute вложение отправляться не хочет. А попытка передать содержимое вложение просто, как текст письма приводит к тому, что игнорируются символы перевода стороки и письмо становится противно читаемым. Через СОМ интерфейс управляя outlook"ом - крайний выход, т. к. я сам пульзуюсь OutLookExpress.
  Одно из возможных решений - как-то в тексте письма сохранить символы перевода строки. А как это сделать, если это вообще возможно?


 
PZ   (2007-05-07 17:53) [1]

А может сделать RAR-архив и вложить его ?


 
TStas ©   (2007-05-07 17:57) [2]

>PZ Дело ведь не в размерах файла, он и так не большой. Не получается вложить файл в письмо. Думаю, что это фаерВол.


 
Reindeer Moss Eater ©   (2007-05-08 10:06) [3]

Отключи его, если так думаешь.


 
clickmaker ©   (2007-05-08 10:09) [4]


> [2] TStas ©   (07.05.07 17:57)

через MAPI еще можно


 
ZeroDivide ©   (2007-05-08 10:11) [5]

uses
 Mapi;

function SendEMail(Handle: THandle; Mail: TStrings): Cardinal;
type
 TAttachAccessArray = array [0..0] of TMapiFileDesc;
 PAttachAccessArray = ^TAttachAccessArray;
var
 MapiMessage: TMapiMessage;
 Receip: TMapiRecipDesc;
 Attachments: PAttachAccessArray;
 AttachCount: Integer;
 i1: integer;
 FileName: string;
 dwRet: Cardinal;
 MAPI_Session: Cardinal;
 WndList: Pointer;
begin
 dwRet := MapiLogon(Handle,
   PChar(""),
   PChar(""),
   MAPI_LOGON_UI or MAPI_NEW_SESSION,
   0, @MAPI_Session);

 if (dwRet <> SUCCESS_SUCCESS) then
 begin
   MessageBox(Handle,
     PChar("Error while trying to send email"),
     PChar("Error"),
     MB_ICONERROR or MB_OK);
 end
 else
 begin
   FillChar(MapiMessage, SizeOf(MapiMessage), #0);
   Attachments := nil;
   FillChar(Receip, SizeOf(Receip), #0);

   if Mail.Values["to"] <> "" then
   begin
     Receip.ulReserved := 0;
     Receip.ulRecipClass := MAPI_TO;
     Receip.lpszName := StrNew(PChar(Mail.Values["to"]));
     Receip.lpszAddress := StrNew(PChar("SMTP:" + Mail.Values["to"]));
     Receip.ulEIDSize := 0;
     MapiMessage.nRecipCount := 1;
     MapiMessage.lpRecips := @Receip;
   end;

   AttachCount := 0;

   for i1 := 0 to MaxInt do
   begin
     if Mail.Values["attachment" + IntToStr(i1)] = "" then
       break;
     Inc(AttachCount);
   end;

   if AttachCount > 0 then
   begin
     GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount);

     for i1 := 0 to AttachCount - 1 do
     begin
       FileName := Mail.Values["attachment" + IntToStr(i1)];
       Attachments[i1].ulReserved := 0;
       Attachments[i1].flFlags := 0;
       Attachments[i1].nPosition := ULONG($FFFFFFFF);
       Attachments[i1].lpszPathName := StrNew(PChar(FileName));
       Attachments[i1].lpszFileName :=
         StrNew(PChar(ExtractFileName(FileName)));
       Attachments[i1].lpFileType := nil;
     end;
     MapiMessage.nFileCount := AttachCount;
     MapiMessage.lpFiles := @Attachments^;
   end;

   if Mail.Values["subject"] <> "" then
     MapiMessage.lpszSubject := StrNew(PChar(Mail.Values["subject"]));
   if Mail.Values["body"] <> "" then
     MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values["body"]));

   WndList := DisableTaskWindows(0);
   try
   Result := MapiSendMail(MAPI_Session, Handle,
     MapiMessage, MAPI_DIALOG, 0);
   finally
     EnableTaskWindows( WndList );
   end;

   for i1 := 0 to AttachCount - 1 do
   begin
     StrDispose(Attachments[i1].lpszPathName);
     StrDispose(Attachments[i1].lpszFileName);
   end;

   if Assigned(MapiMessage.lpszSubject) then
     StrDispose(MapiMessage.lpszSubject);
   if Assigned(MapiMessage.lpszNoteText) then
     StrDispose(MapiMessage.lpszNoteText);
   if Assigned(Receip.lpszAddress) then
     StrDispose(Receip.lpszAddress);
   if Assigned(Receip.lpszName) then
     StrDispose(Receip.lpszName);
   MapiLogOff(MAPI_Session, Handle, 0, 0);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 mail: TStringList;
begin
 mail := TStringList.Create;
 try
   mail.values["to"] := "Receiver-Email@test.xyz";
   mail.values["subject"] := "Hello";
   mail.values["body"] := "blah";
   mail.values["body"] := "blah";
   mail.values["attachment0"] := "C:\Test.txt";
   // mail.values["attachment1"]:="C:\Test2.txt";
   sendEMail(Application.Handle, mail);
 finally
   mail.Free;
 end;
end;




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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
15-1181335719
ProgRAMmer Dimonych
2007-06-09 00:48
2007.07.08
Готов принимать поздравления и ответы на вопрос :)


15-1181133661
PARUS
2007-06-06 16:41
2007.07.08
ГЫГЫ


2-1181565348
repus
2007-06-11 16:35
2007.07.08
Помогите ожалуйста.


15-1181231210
Сера
2007-06-07 19:46
2007.07.08
Про дистанционное обучение


9-1155566754
Zo
2006-08-14 18:45
2007.07.08
низкие фпс в opengl