Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клиент e-mail, Клиент e-mail 
:(
    Опции темы
skorpik
Дата 19.2.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



Вот есть вопросик по e-mail почте: как отправить почту через The Bat! но только именно с отправкой на подтверждение о прочтении или о доставки почты с прикрепленными файлами (можно и на MAPI и  на INDY)? Вот The Bat! это прекрасно делает, а как бы отправлять почту из своей программы через ящик в The Bat! также как это делает он сам (с подтверждением о доставке\прочтении)? Заранее спасибо...
PM MAIL   Вверх
skorpik
Дата 10.3.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



Прошу прощения, что снова пишу сюда, но вижу что не отвечают, так вот решил конкретизировать, что у меня получилось, полсе того как пошатался по форуму и погуглил с тех пор, как сюда поместил эту тему:
Код

unit mail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MAPI, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
function SendEMail(MailFrom: string; const MailTo: array of string;
                   Subject, Body: string; const Attach: array of string): Cardinal;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.SendEMail(MailFrom: string; const MailTo: array of string;
                   Subject, Body: string; const Attach: array of string): Cardinal;
var
  Mess: TMapiMessage;
  MRD:   array of TMapiRecipDesc;
  Files: array of TMapiFileDesc;
  i: integer;
  Session: THandle;
begin
  result := MapiLogon(0,'veb',nil, MAPI_LOGON_UI or MAPI_NEW_SESSION,0,@Session);
  if (result = SUCCESS_SUCCESS) then
  begin
    FillChar(Mess, SizeOf(Mess), 0);
    if Subject <> '' then Mess.lpszSubject := PChar(Subject);
    if Body <> '' then Mess.lpszNoteText := PChar(Body);
    if Length(MailTo) > 0 then
    begin
      SetLength(MRD, Length(MailTo));
      for i:=0 to Length(MailTo)-1 do
      begin
        MRD[i].ulReserved := 0;
        MRD[i].ulRecipClass := MAPI_TO;
        MRD[i].lpszName := PChar(MailTo[i]);
        MRD[i].lpszAddress := PChar('SMTP:'+MailTo[i]);
        MRD[i].ulEIDSize := 0;
        MRD[i].lpEntryID := nil;
      end;
      Mess.nRecipCount := Length(MailTo);
      Mess.lpRecips := @MRD[0];
      Mess.flFlags:=MAPI_RECEIPT_REQUESTED;
    end;
    if Length(Attach) > 0 then
    begin
      SetLength(Files, Length(Attach));
      for i := 0 to Length(Attach) - 1 do
      begin
        Files[i].ulReserved := 0;
        Files[i].flFlags := 0;
        Files[i].nPosition := ULONG($FFFFFFFF);
        Files[i].lpszPathName := PChar(Attach[i]);
        Files[i].lpszFileName := PChar(ExtractFileName(Attach[i]));
        Files[i].lpFileType := nil;
      end;
      Mess.nFileCount := Length(Attach);
      Mess.lpFiles := @Files[0];
      Mess.flFlags:=MAPI_RECEIPT_REQUESTED; //вот тут я вроде как указываю, чтобы
                                            //отправился запрос на подтверждение
                                            //о доставке
    end;
    try
      mess.flFlags:=MAPI_RECEIPT_REQUESTED;//ну или можно тут, наверное
      result := MapiSendMail(Session, Handle, Mess, MAPI_DIALOG, 0);
    except
      result := MAPI_E_FAILURE;
    end;
    MapiLogOff(Session, 0, 0, 0);
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if SendEMail('[email protected]',
             ['[email protected]'], 
              'Subject of he letter'
              'The new message.', 
              ['C:\file1.txt', 'C:\file2.doc']) = 0 then 
    ShowMessage('All Ok!')
  else ShowMessage('Not Sent.');
end;

end.


Все работает как положено (в смысле письма то отправляет через ящик в TheBat!), но вот подтверждения о доставке ни в какую не хочет!

Даже когда тут
Код

result := MapiSendMail(Session, Handle, Mess, MAPI_DIALOG, 0);

прописал конкретно чтобы открывалось окно с письмом - то галочки внизу окна TheBat! не выставлены. (см. рисунок в файле к сообщению) но все остальные поля - e-mail from, e-mail to, subject, text - все расставлно на своих местах как положено! 
Как же сделть чтобы программно проставить те галочки внизу окна TheBat!, причем, заметил, если в самом шаблоне нового письма клиента прописать строку %RCPTCONFIRM, то галочки выставлены, когда начинаешь писать новое письмо в самом клиенте - это наверное тока ему одному понятен макрос? Может как-то через шаблоны его писать письма раз невозможно проставить те галочки программным путем? Помогите пожалуйста...
Заранее спасибо.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  2.JPG 1,64 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.