Конференция "Сети" » MAPI и символы перевода каретки, MS Outlook
 
  • DevilDevil © (20.03.12 10:05) [0]
    Здравствуйте

    Составляю с помощью MAPI письмо. Отображается так:
    Направляю результаты выгрузки СЭД МРФ Волга за 19.03.2012
    1. Исходящие +
    2. На согласование -
    3. Поручения +
    4. Отчеты +
    5. Визы +
    6. Все интеграционные сущности +



    Но почему то при отправке письма, "символы перевода каретки" теряются. И письмо уходит такое:
    Направляю результаты выгрузки СЭД МРФ Волга за 19.03.2012 1. Исходящие + 2. На согласование - 3. Поручения + 4. Отчеты + 5. Визы + 6. Все интеграционные сущности +



    У кого какие идеи?
    Делал и #13, и #10, и #13#10 - результат один!
  • brother © (20.03.12 10:22) [1]
    1. посмотреть в теле любого письма (рабочего) какой там разделитель?
    2.
    > Но почему то при отправке письма, "символы перевода каретки"
    > теряются. И письмо уходит такое:

    ты не путаешь, именно уходит, а не приходит?
  • DevilDevil © (20.03.12 10:29) [2]
    в отправленных
    и в полученных
    без "символов перевода каретки"
  • brother © (20.03.12 10:39) [3]
    1. ?
    перехвати рабочее письмо и посмотри как оно сформировано..
  • brother © (20.03.12 10:40) [4]
    > Составляю с помощью MAPI письмо. Отображается так:

    да, и код покажи...
  • DevilDevil © (20.03.12 10:45) [5]
    что значит "перехвати рабочее письмо и посмотри как оно сформировано.." ?
  • brother © (20.03.12 11:15) [6]
    начни с [4]
  • DevilDevil © (20.03.12 12:59) [7]
    // отправить письмо со вложенными файлами
    function SendEMail(const Subject, Text: AnsiString; const Files: TStringList): boolean;
    const
     Handle = 0;
    type
     TMapiRecipDescEx = packed record
       ulReserved: dword;
       ulRecipClass: dword;
       lpszName: AnsiString;
       lpszAddress: AnsiString;
       ulEIDSize: dword;
       lpEntryID: pointer;
     end;

     TMapiFileDescEx = packed record
       ulReserved: dword;
       flFlags: dword;
       nPosition: dword;
       lpszPathName: AnsiString;
       lpszFileName: AnsiString;
       lpFileType: pointer;
     end;

     TMapiMessageEx = packed record
       ulReserved: dword;
       lpszSubject: AnsiString;
       lpszNoteText: AnsiString;
       lpszMessageType: pointer;
       lpszDateReceived: pointer;
       lpszConversationID: pointer;
       flFlags: MAPI.FLAGS;
       lpOriginator: pointer;
       nRecipCount: dword;
       lpRecips: array of TMapiRecipDescEx;
       nFileCount: dword;
       lpFiles: array of TMapiFileDescEx;
     end;

    var
     i: integer;
     MapiMessage: TMapiMessageEx;{TMapiMessage;
     Receip: TMapiRecipDescEx;}

     MAPI_Session: Cardinal;
    begin
     Result := false;
     if (MapiLogon(Handle,nil,nil,MAPI_LOGON_UI or MAPI_NEW_SESSION,0,@MAPI_Session) <> SUCCESS_SUCCESS) then exit;

     ZeroMemory(@MapiMessage, sizeof(MapiMessage));
     MapiMessage.lpszSubject := Subject;
     MapiMessage.lpszNoteText := Text;
     MapiMessage.nRecipCount := 3;
     SetLength(MapiMessage.lpRecips, 3);
     ZeroMemory(pointer(MapiMessage.lpRecips), sizeof(TMapiRecipDescEx)*3);
     MapiMessage.nFileCount := Files.Count;
     SetLength(MapiMessage.lpFiles, MapiMessage.nFileCount);
     ZeroMemory(pointer(MapiMessage.lpFiles), sizeof(TMapiFileDescEx)*MapiMessage.nFileCount);
     
     with MapiMessage.lpRecips[0] do
     begin
       ulRecipClass := MAPI_TO;
       lpszName := 'Баранова Елена Александровна';
       lpszAddress := 'SMTP:' + 'eabaranova@at-consulting.ru';
     end;
     with MapiMessage.lpRecips[1] do
     begin
       ulRecipClass := MAPI_CC;
       lpszName := 'Gluhovchenko@RT.RU';
       lpszAddress := 'SMTP:' + lpszName;
     end;
     with MapiMessage.lpRecips[2] do
     begin
       ulRecipClass := MAPI_CC;
       lpszName := 'ddubrovskiy@at-consulting.ru';
       lpszAddress := 'SMTP:' + lpszName;
     end;

     for i := 0 to integer(MapiMessage.nFileCount)-1 do
     with MapiMessage.lpFiles[i] do
     begin
       nPosition := high(dword);
       lpszPathName := Files[i];
       lpszFileName := ExtractFileName(lpszPathName);
     end;

     Result := (MapiSendMail(MAPI_Session, Handle, PMapiMessage(@MapiMessage)^, MAPI_USE_DEFAULT or MAPI_DIALOG or MAPI_LOGON_UI, 0) <= MAPI_USER_ABORT);
     MapiLogOff(MAPI_Session, Handle, 0, 0);
    end;

  • DevilDevil © (21.03.12 09:29) [8]
    И ?
  • Cobalt © (21.03.12 13:17) [9]
    Проверил только что на Д2010/WinXP со MS Outlook 2007
     SendEMail('test', '111111'#10#13'22222'#10#13'333333', nil);


    прекрасно показало в теле письма три строки.
    Прекрасно показывало в исходящих три строки
    Прекрасно отправил себе и получил точь-в-точь как и выглядело при отправке.
    И на mail.ru прекрасно показывает 3 строки

    У тебя в исходящих как отображается-то?
  • DevilDevil © (21.03.12 14:17) [10]
    ошибка найдена
    http://www.potolook.ru/blog/p,227/
 
Конференция "Сети" » MAPI и символы перевода каретки, MS Outlook
Есть новые Нет новых   [134435   +13][b:0][p:0.003]